/******************************************************************************** * * * 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 . * * * ********************************************************************************/ /******************************************************************************** * * * This file has been generated from IFC4x3_RC1.exp. Do not make modifications * * but instead modify the python script that has been used to generate this. * * * ********************************************************************************/ #include "../ifcparse/Ifc4x3_rc1.h" #include "../ifcparse/IfcSchema.h" #include "../ifcparse/IfcException.h" #include "../ifcparse/IfcFile.h" #include const char* const Ifc4x3_rc1::Identifier = "IFC4X3_RC1"; using namespace IfcParse; // External definitions extern declaration* IFC4X3_RC1_types[1317]; // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcActionRequestTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[3]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcActionRequestTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[3]); } /* Ifc4x3_rc1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcActionRequestTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcActionRequestTypeEnum::Value Ifc4x3_rc1::IfcActionRequestTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcActionRequestTypeEnum::Value) Ifc4x3_rc1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcActionRequestTypeEnum::operator Ifc4x3_rc1::IfcActionRequestTypeEnum::Value() const { return (Ifc4x3_rc1::IfcActionRequestTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcActionSourceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[4]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcActionSourceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[4]); } /* Ifc4x3_rc1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcActionSourceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcActionSourceTypeEnum::Value Ifc4x3_rc1::IfcActionSourceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcActionSourceTypeEnum::Value) Ifc4x3_rc1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcActionSourceTypeEnum::operator Ifc4x3_rc1::IfcActionSourceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcActionSourceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcActionTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[5]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcActionTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[5]); } /* Ifc4x3_rc1::IfcActionTypeEnum::IfcActionTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcActionTypeEnum::IfcActionTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcActionTypeEnum::IfcActionTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcActionTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcActionTypeEnum::IfcActionTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcActionTypeEnum::Value Ifc4x3_rc1::IfcActionTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcActionTypeEnum::Value) Ifc4x3_rc1::IfcActionTypeEnum::IfcActionTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcActionTypeEnum::operator Ifc4x3_rc1::IfcActionTypeEnum::Value() const { return (Ifc4x3_rc1::IfcActionTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcActuatorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[11]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcActuatorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[11]); } /* Ifc4x3_rc1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcActuatorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcActuatorTypeEnum::IfcActuatorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcActuatorTypeEnum::Value Ifc4x3_rc1::IfcActuatorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcActuatorTypeEnum::Value) Ifc4x3_rc1::IfcActuatorTypeEnum::IfcActuatorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcActuatorTypeEnum::operator Ifc4x3_rc1::IfcActuatorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcActuatorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAddressTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[13]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAddressTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[13]); } /* Ifc4x3_rc1::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAddressTypeEnum::IfcAddressTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAddressTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAddressTypeEnum::IfcAddressTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAddressTypeEnum::Value Ifc4x3_rc1::IfcAddressTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAddressTypeEnum::Value) Ifc4x3_rc1::IfcAddressTypeEnum::IfcAddressTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAddressTypeEnum::operator Ifc4x3_rc1::IfcAddressTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAddressTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[20]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[20]); } /* Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value) Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::operator Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAirTerminalTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[22]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAirTerminalTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[22]); } /* Ifc4x3_rc1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAirTerminalTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value Ifc4x3_rc1::IfcAirTerminalTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value) Ifc4x3_rc1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAirTerminalTypeEnum::operator Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[25]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[25]); } /* Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value) Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::operator Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAlarmTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[28]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAlarmTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[28]); } /* Ifc4x3_rc1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAlarmTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAlarmTypeEnum::IfcAlarmTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAlarmTypeEnum::Value Ifc4x3_rc1::IfcAlarmTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAlarmTypeEnum::Value) Ifc4x3_rc1::IfcAlarmTypeEnum::IfcAlarmTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAlarmTypeEnum::operator Ifc4x3_rc1::IfcAlarmTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAlarmTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAlignmentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[44]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAlignmentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[44]); } /* Ifc4x3_rc1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAlignmentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAlignmentTypeEnum::Value Ifc4x3_rc1::IfcAlignmentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAlignmentTypeEnum::Value) Ifc4x3_rc1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAlignmentTypeEnum::operator Ifc4x3_rc1::IfcAlignmentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAlignmentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAnalysisModelTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[46]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[46]); } /* Ifc4x3_rc1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAnalysisModelTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Value Ifc4x3_rc1::IfcAnalysisModelTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Value) Ifc4x3_rc1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAnalysisModelTypeEnum::operator Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[47]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[47]); } /* Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Value Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Value) Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::operator Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAnnotationTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[51]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAnnotationTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[51]); } /* Ifc4x3_rc1::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAnnotationTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAnnotationTypeEnum::Value Ifc4x3_rc1::IfcAnnotationTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAnnotationTypeEnum::Value) Ifc4x3_rc1::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAnnotationTypeEnum::operator Ifc4x3_rc1::IfcAnnotationTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAnnotationTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcArithmeticOperatorEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[63]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcArithmeticOperatorEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[63]); } /* Ifc4x3_rc1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcArithmeticOperatorEnum::ToString(Value v) { return Ifc4x3_rc1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcArithmeticOperatorEnum::Value Ifc4x3_rc1::IfcArithmeticOperatorEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcArithmeticOperatorEnum::Value) Ifc4x3_rc1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcArithmeticOperatorEnum::operator Ifc4x3_rc1::IfcArithmeticOperatorEnum::Value() const { return (Ifc4x3_rc1::IfcArithmeticOperatorEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAssemblyPlaceEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[64]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAssemblyPlaceEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[64]); } /* Ifc4x3_rc1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAssemblyPlaceEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value Ifc4x3_rc1::IfcAssemblyPlaceEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value) Ifc4x3_rc1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAssemblyPlaceEnum::operator Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value() const { return (Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[69]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[69]); } /* Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value) Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::operator Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBSplineCurveForm::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[113]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBSplineCurveForm::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[113]); } /* Ifc4x3_rc1::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBSplineCurveForm::IfcBSplineCurveForm(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBSplineCurveForm::ToString(Value v) { return Ifc4x3_rc1::IfcBSplineCurveForm::IfcBSplineCurveForm::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBSplineCurveForm::Value Ifc4x3_rc1::IfcBSplineCurveForm::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBSplineCurveForm::Value) Ifc4x3_rc1::IfcBSplineCurveForm::IfcBSplineCurveForm::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBSplineCurveForm::operator Ifc4x3_rc1::IfcBSplineCurveForm::Value() const { return (Ifc4x3_rc1::IfcBSplineCurveForm::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBSplineSurfaceForm::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[116]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBSplineSurfaceForm::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[116]); } /* Ifc4x3_rc1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBSplineSurfaceForm::ToString(Value v) { return Ifc4x3_rc1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBSplineSurfaceForm::Value Ifc4x3_rc1::IfcBSplineSurfaceForm::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBSplineSurfaceForm::Value) Ifc4x3_rc1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBSplineSurfaceForm::operator Ifc4x3_rc1::IfcBSplineSurfaceForm::Value() const { return (Ifc4x3_rc1::IfcBSplineSurfaceForm::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBeamTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[78]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBeamTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[78]); } /* Ifc4x3_rc1::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBeamTypeEnum::IfcBeamTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBeamTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBeamTypeEnum::IfcBeamTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBeamTypeEnum::Value Ifc4x3_rc1::IfcBeamTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBeamTypeEnum::Value) Ifc4x3_rc1::IfcBeamTypeEnum::IfcBeamTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBeamTypeEnum::operator Ifc4x3_rc1::IfcBeamTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBeamTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[81]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[81]); } /* Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::Value Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::Value) Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::operator Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::Value() const { return (Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBearingTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[82]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBearingTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[82]); } /* Ifc4x3_rc1::IfcBearingTypeEnum::IfcBearingTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBearingTypeEnum::IfcBearingTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBearingTypeEnum::IfcBearingTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBearingTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBearingTypeEnum::IfcBearingTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBearingTypeEnum::Value Ifc4x3_rc1::IfcBearingTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBearingTypeEnum::Value) Ifc4x3_rc1::IfcBearingTypeEnum::IfcBearingTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBearingTypeEnum::operator Ifc4x3_rc1::IfcBearingTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBearingTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBenchmarkEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[83]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBenchmarkEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[83]); } /* Ifc4x3_rc1::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBenchmarkEnum::IfcBenchmarkEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBenchmarkEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBenchmarkEnum::IfcBenchmarkEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBenchmarkEnum::Value Ifc4x3_rc1::IfcBenchmarkEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBenchmarkEnum::Value) Ifc4x3_rc1::IfcBenchmarkEnum::IfcBenchmarkEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBenchmarkEnum::operator Ifc4x3_rc1::IfcBenchmarkEnum::Value() const { return (Ifc4x3_rc1::IfcBenchmarkEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBoilerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[90]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBoilerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[90]); } /* Ifc4x3_rc1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBoilerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBoilerTypeEnum::IfcBoilerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBoilerTypeEnum::Value Ifc4x3_rc1::IfcBoilerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBoilerTypeEnum::Value) Ifc4x3_rc1::IfcBoilerTypeEnum::IfcBoilerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBoilerTypeEnum::operator Ifc4x3_rc1::IfcBoilerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBoilerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBooleanOperator::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[94]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBooleanOperator::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[94]); } /* Ifc4x3_rc1::IfcBooleanOperator::IfcBooleanOperator(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBooleanOperator::IfcBooleanOperator(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBooleanOperator::IfcBooleanOperator(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBooleanOperator::ToString(Value v) { return Ifc4x3_rc1::IfcBooleanOperator::IfcBooleanOperator::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBooleanOperator::Value Ifc4x3_rc1::IfcBooleanOperator::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBooleanOperator::Value) Ifc4x3_rc1::IfcBooleanOperator::IfcBooleanOperator::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBooleanOperator::operator Ifc4x3_rc1::IfcBooleanOperator::Value() const { return (Ifc4x3_rc1::IfcBooleanOperator::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBridgePartTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[110]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBridgePartTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[110]); } /* Ifc4x3_rc1::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBridgePartTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBridgePartTypeEnum::Value Ifc4x3_rc1::IfcBridgePartTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBridgePartTypeEnum::Value) Ifc4x3_rc1::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBridgePartTypeEnum::operator Ifc4x3_rc1::IfcBridgePartTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBridgePartTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBridgeTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[111]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBridgeTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[111]); } /* Ifc4x3_rc1::IfcBridgeTypeEnum::IfcBridgeTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBridgeTypeEnum::IfcBridgeTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBridgeTypeEnum::IfcBridgeTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBridgeTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBridgeTypeEnum::IfcBridgeTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBridgeTypeEnum::Value Ifc4x3_rc1::IfcBridgeTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBridgeTypeEnum::Value) Ifc4x3_rc1::IfcBridgeTypeEnum::IfcBridgeTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBridgeTypeEnum::operator Ifc4x3_rc1::IfcBridgeTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBridgeTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[121]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[121]); } /* Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value) Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::operator Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[124]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[124]); } /* Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value) Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::operator Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBuildingSystemTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[127]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[127]); } /* Ifc4x3_rc1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBuildingSystemTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Value Ifc4x3_rc1::IfcBuildingSystemTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Value) Ifc4x3_rc1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBuildingSystemTypeEnum::operator Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBuiltSystemTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[131]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[131]); } /* Ifc4x3_rc1::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBuiltSystemTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Value Ifc4x3_rc1::IfcBuiltSystemTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Value) Ifc4x3_rc1::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBuiltSystemTypeEnum::operator Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBurnerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[134]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcBurnerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[134]); } /* Ifc4x3_rc1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcBurnerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcBurnerTypeEnum::IfcBurnerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcBurnerTypeEnum::Value Ifc4x3_rc1::IfcBurnerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcBurnerTypeEnum::Value) Ifc4x3_rc1::IfcBurnerTypeEnum::IfcBurnerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcBurnerTypeEnum::operator Ifc4x3_rc1::IfcBurnerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcBurnerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[137]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[137]); } /* Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value) Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::operator Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[140]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[140]); } /* Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value) Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::operator Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCableFittingTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[143]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCableFittingTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[143]); } /* Ifc4x3_rc1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCableFittingTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCableFittingTypeEnum::Value Ifc4x3_rc1::IfcCableFittingTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCableFittingTypeEnum::Value) Ifc4x3_rc1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCableFittingTypeEnum::operator Ifc4x3_rc1::IfcCableFittingTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCableFittingTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCableSegmentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[146]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCableSegmentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[146]); } /* Ifc4x3_rc1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCableSegmentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value Ifc4x3_rc1::IfcCableSegmentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value) Ifc4x3_rc1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCableSegmentTypeEnum::operator Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[149]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[149]); } /* Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value) Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::operator Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcChangeActionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[161]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcChangeActionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[161]); } /* Ifc4x3_rc1::IfcChangeActionEnum::IfcChangeActionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcChangeActionEnum::IfcChangeActionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcChangeActionEnum::IfcChangeActionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcChangeActionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcChangeActionEnum::IfcChangeActionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcChangeActionEnum::Value Ifc4x3_rc1::IfcChangeActionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcChangeActionEnum::Value) Ifc4x3_rc1::IfcChangeActionEnum::IfcChangeActionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcChangeActionEnum::operator Ifc4x3_rc1::IfcChangeActionEnum::Value() const { return (Ifc4x3_rc1::IfcChangeActionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcChillerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[164]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcChillerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[164]); } /* Ifc4x3_rc1::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcChillerTypeEnum::IfcChillerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcChillerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcChillerTypeEnum::IfcChillerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcChillerTypeEnum::Value Ifc4x3_rc1::IfcChillerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcChillerTypeEnum::Value) Ifc4x3_rc1::IfcChillerTypeEnum::IfcChillerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcChillerTypeEnum::operator Ifc4x3_rc1::IfcChillerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcChillerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcChimneyTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[167]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcChimneyTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[167]); } /* Ifc4x3_rc1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcChimneyTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcChimneyTypeEnum::IfcChimneyTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcChimneyTypeEnum::Value Ifc4x3_rc1::IfcChimneyTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcChimneyTypeEnum::Value) Ifc4x3_rc1::IfcChimneyTypeEnum::IfcChimneyTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcChimneyTypeEnum::operator Ifc4x3_rc1::IfcChimneyTypeEnum::Value() const { return (Ifc4x3_rc1::IfcChimneyTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCoilTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[181]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCoilTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[181]); } /* Ifc4x3_rc1::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCoilTypeEnum::IfcCoilTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCoilTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCoilTypeEnum::IfcCoilTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCoilTypeEnum::Value Ifc4x3_rc1::IfcCoilTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCoilTypeEnum::Value) Ifc4x3_rc1::IfcCoilTypeEnum::IfcCoilTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCoilTypeEnum::operator Ifc4x3_rc1::IfcCoilTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCoilTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcColumnTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[190]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcColumnTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[190]); } /* Ifc4x3_rc1::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcColumnTypeEnum::IfcColumnTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcColumnTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcColumnTypeEnum::IfcColumnTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcColumnTypeEnum::Value Ifc4x3_rc1::IfcColumnTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcColumnTypeEnum::Value) Ifc4x3_rc1::IfcColumnTypeEnum::IfcColumnTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcColumnTypeEnum::operator Ifc4x3_rc1::IfcColumnTypeEnum::Value() const { return (Ifc4x3_rc1::IfcColumnTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[193]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[193]); } /* Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value) Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::operator Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[197]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[197]); } /* Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Value Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Value) Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::operator Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Value() const { return (Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCompressorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[205]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCompressorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[205]); } /* Ifc4x3_rc1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCompressorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCompressorTypeEnum::IfcCompressorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCompressorTypeEnum::Value Ifc4x3_rc1::IfcCompressorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCompressorTypeEnum::Value) Ifc4x3_rc1::IfcCompressorTypeEnum::IfcCompressorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCompressorTypeEnum::operator Ifc4x3_rc1::IfcCompressorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCompressorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCondenserTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[208]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCondenserTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[208]); } /* Ifc4x3_rc1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCondenserTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCondenserTypeEnum::IfcCondenserTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCondenserTypeEnum::Value Ifc4x3_rc1::IfcCondenserTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCondenserTypeEnum::Value) Ifc4x3_rc1::IfcCondenserTypeEnum::IfcCondenserTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCondenserTypeEnum::operator Ifc4x3_rc1::IfcCondenserTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCondenserTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConnectionTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[216]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConnectionTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[216]); } /* Ifc4x3_rc1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcConnectionTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcConnectionTypeEnum::IfcConnectionTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcConnectionTypeEnum::Value Ifc4x3_rc1::IfcConnectionTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcConnectionTypeEnum::Value) Ifc4x3_rc1::IfcConnectionTypeEnum::IfcConnectionTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcConnectionTypeEnum::operator Ifc4x3_rc1::IfcConnectionTypeEnum::Value() const { return (Ifc4x3_rc1::IfcConnectionTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConstraintEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[219]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConstraintEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[219]); } /* Ifc4x3_rc1::IfcConstraintEnum::IfcConstraintEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcConstraintEnum::IfcConstraintEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcConstraintEnum::IfcConstraintEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcConstraintEnum::ToString(Value v) { return Ifc4x3_rc1::IfcConstraintEnum::IfcConstraintEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcConstraintEnum::Value Ifc4x3_rc1::IfcConstraintEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcConstraintEnum::Value) Ifc4x3_rc1::IfcConstraintEnum::IfcConstraintEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcConstraintEnum::operator Ifc4x3_rc1::IfcConstraintEnum::Value() const { return (Ifc4x3_rc1::IfcConstraintEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[222]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[222]); } /* Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value) Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::operator Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[225]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[225]); } /* Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value) Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::operator Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[228]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[228]); } /* Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value) Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::operator Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcControllerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[237]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcControllerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[237]); } /* Ifc4x3_rc1::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcControllerTypeEnum::IfcControllerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcControllerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcControllerTypeEnum::IfcControllerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcControllerTypeEnum::Value Ifc4x3_rc1::IfcControllerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcControllerTypeEnum::Value) Ifc4x3_rc1::IfcControllerTypeEnum::IfcControllerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcControllerTypeEnum::operator Ifc4x3_rc1::IfcControllerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcControllerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[242]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[242]); } /* Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value) Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::operator Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCooledBeamTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[245]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCooledBeamTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[245]); } /* Ifc4x3_rc1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCooledBeamTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value Ifc4x3_rc1::IfcCooledBeamTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value) Ifc4x3_rc1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCooledBeamTypeEnum::operator Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCoolingTowerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[248]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[248]); } /* Ifc4x3_rc1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCoolingTowerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value Ifc4x3_rc1::IfcCoolingTowerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value) Ifc4x3_rc1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCoolingTowerTypeEnum::operator Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCostItemTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[253]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCostItemTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[253]); } /* Ifc4x3_rc1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCostItemTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCostItemTypeEnum::IfcCostItemTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCostItemTypeEnum::Value Ifc4x3_rc1::IfcCostItemTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCostItemTypeEnum::Value) Ifc4x3_rc1::IfcCostItemTypeEnum::IfcCostItemTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCostItemTypeEnum::operator Ifc4x3_rc1::IfcCostItemTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCostItemTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCostScheduleTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[255]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCostScheduleTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[255]); } /* Ifc4x3_rc1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCostScheduleTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCostScheduleTypeEnum::Value Ifc4x3_rc1::IfcCostScheduleTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCostScheduleTypeEnum::Value) Ifc4x3_rc1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCostScheduleTypeEnum::operator Ifc4x3_rc1::IfcCostScheduleTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCostScheduleTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCourseTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[260]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCourseTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[260]); } /* Ifc4x3_rc1::IfcCourseTypeEnum::IfcCourseTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCourseTypeEnum::IfcCourseTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCourseTypeEnum::IfcCourseTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCourseTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCourseTypeEnum::IfcCourseTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCourseTypeEnum::Value Ifc4x3_rc1::IfcCourseTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCourseTypeEnum::Value) Ifc4x3_rc1::IfcCourseTypeEnum::IfcCourseTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCourseTypeEnum::operator Ifc4x3_rc1::IfcCourseTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCourseTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCoveringTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[263]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCoveringTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[263]); } /* Ifc4x3_rc1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCoveringTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCoveringTypeEnum::IfcCoveringTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCoveringTypeEnum::Value Ifc4x3_rc1::IfcCoveringTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCoveringTypeEnum::Value) Ifc4x3_rc1::IfcCoveringTypeEnum::IfcCoveringTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCoveringTypeEnum::operator Ifc4x3_rc1::IfcCoveringTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCoveringTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCrewResourceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[266]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCrewResourceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[266]); } /* Ifc4x3_rc1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCrewResourceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value Ifc4x3_rc1::IfcCrewResourceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value) Ifc4x3_rc1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCrewResourceTypeEnum::operator Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCurtainWallTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[274]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCurtainWallTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[274]); } /* Ifc4x3_rc1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCurtainWallTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value Ifc4x3_rc1::IfcCurtainWallTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value) Ifc4x3_rc1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCurtainWallTypeEnum::operator Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value() const { return (Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCurveInterpolationEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[280]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcCurveInterpolationEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[280]); } /* Ifc4x3_rc1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcCurveInterpolationEnum::ToString(Value v) { return Ifc4x3_rc1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcCurveInterpolationEnum::Value Ifc4x3_rc1::IfcCurveInterpolationEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcCurveInterpolationEnum::Value) Ifc4x3_rc1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcCurveInterpolationEnum::operator Ifc4x3_rc1::IfcCurveInterpolationEnum::Value() const { return (Ifc4x3_rc1::IfcCurveInterpolationEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDamperTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[292]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDamperTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[292]); } /* Ifc4x3_rc1::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDamperTypeEnum::IfcDamperTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDamperTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDamperTypeEnum::IfcDamperTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDamperTypeEnum::Value Ifc4x3_rc1::IfcDamperTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDamperTypeEnum::Value) Ifc4x3_rc1::IfcDamperTypeEnum::IfcDamperTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDamperTypeEnum::operator Ifc4x3_rc1::IfcDamperTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDamperTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDataOriginEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[293]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDataOriginEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[293]); } /* Ifc4x3_rc1::IfcDataOriginEnum::IfcDataOriginEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDataOriginEnum::IfcDataOriginEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDataOriginEnum::IfcDataOriginEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDataOriginEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDataOriginEnum::IfcDataOriginEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDataOriginEnum::Value Ifc4x3_rc1::IfcDataOriginEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDataOriginEnum::Value) Ifc4x3_rc1::IfcDataOriginEnum::IfcDataOriginEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDataOriginEnum::operator Ifc4x3_rc1::IfcDataOriginEnum::Value() const { return (Ifc4x3_rc1::IfcDataOriginEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDerivedUnitEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[305]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDerivedUnitEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[305]); } /* Ifc4x3_rc1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDerivedUnitEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDerivedUnitEnum::IfcDerivedUnitEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDerivedUnitEnum::Value Ifc4x3_rc1::IfcDerivedUnitEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDerivedUnitEnum::Value) Ifc4x3_rc1::IfcDerivedUnitEnum::IfcDerivedUnitEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDerivedUnitEnum::operator Ifc4x3_rc1::IfcDerivedUnitEnum::Value() const { return (Ifc4x3_rc1::IfcDerivedUnitEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDirectionSenseEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[310]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDirectionSenseEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[310]); } /* Ifc4x3_rc1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDirectionSenseEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDirectionSenseEnum::IfcDirectionSenseEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDirectionSenseEnum::Value Ifc4x3_rc1::IfcDirectionSenseEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDirectionSenseEnum::Value) Ifc4x3_rc1::IfcDirectionSenseEnum::IfcDirectionSenseEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDirectionSenseEnum::operator Ifc4x3_rc1::IfcDirectionSenseEnum::Value() const { return (Ifc4x3_rc1::IfcDirectionSenseEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[315]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[315]); } /* Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value) Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::operator Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDistributionBoardTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[319]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[319]); } /* Ifc4x3_rc1::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDistributionBoardTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value Ifc4x3_rc1::IfcDistributionBoardTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value) Ifc4x3_rc1::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDistributionBoardTypeEnum::operator Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[322]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[322]); } /* Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value) Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::operator Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDistributionPortTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[331]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDistributionPortTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[331]); } /* Ifc4x3_rc1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDistributionPortTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDistributionPortTypeEnum::Value Ifc4x3_rc1::IfcDistributionPortTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDistributionPortTypeEnum::Value) Ifc4x3_rc1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDistributionPortTypeEnum::operator Ifc4x3_rc1::IfcDistributionPortTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDistributionPortTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDistributionSystemEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[333]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDistributionSystemEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[333]); } /* Ifc4x3_rc1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDistributionSystemEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDistributionSystemEnum::IfcDistributionSystemEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDistributionSystemEnum::Value Ifc4x3_rc1::IfcDistributionSystemEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDistributionSystemEnum::Value) Ifc4x3_rc1::IfcDistributionSystemEnum::IfcDistributionSystemEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDistributionSystemEnum::operator Ifc4x3_rc1::IfcDistributionSystemEnum::Value() const { return (Ifc4x3_rc1::IfcDistributionSystemEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDocumentConfidentialityEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[334]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[334]); } /* Ifc4x3_rc1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDocumentConfidentialityEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value Ifc4x3_rc1::IfcDocumentConfidentialityEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value) Ifc4x3_rc1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDocumentConfidentialityEnum::operator Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value() const { return (Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDocumentStatusEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[339]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDocumentStatusEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[339]); } /* Ifc4x3_rc1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDocumentStatusEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDocumentStatusEnum::IfcDocumentStatusEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDocumentStatusEnum::Value Ifc4x3_rc1::IfcDocumentStatusEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDocumentStatusEnum::Value) Ifc4x3_rc1::IfcDocumentStatusEnum::IfcDocumentStatusEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDocumentStatusEnum::operator Ifc4x3_rc1::IfcDocumentStatusEnum::Value() const { return (Ifc4x3_rc1::IfcDocumentStatusEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorPanelOperationEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[342]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorPanelOperationEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[342]); } /* Ifc4x3_rc1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDoorPanelOperationEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDoorPanelOperationEnum::Value Ifc4x3_rc1::IfcDoorPanelOperationEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDoorPanelOperationEnum::Value) Ifc4x3_rc1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDoorPanelOperationEnum::operator Ifc4x3_rc1::IfcDoorPanelOperationEnum::Value() const { return (Ifc4x3_rc1::IfcDoorPanelOperationEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorPanelPositionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[343]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorPanelPositionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[343]); } /* Ifc4x3_rc1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDoorPanelPositionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDoorPanelPositionEnum::Value Ifc4x3_rc1::IfcDoorPanelPositionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDoorPanelPositionEnum::Value) Ifc4x3_rc1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDoorPanelPositionEnum::operator Ifc4x3_rc1::IfcDoorPanelPositionEnum::Value() const { return (Ifc4x3_rc1::IfcDoorPanelPositionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorStyleConstructionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[347]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[347]); } /* Ifc4x3_rc1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDoorStyleConstructionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Value Ifc4x3_rc1::IfcDoorStyleConstructionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Value) Ifc4x3_rc1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDoorStyleConstructionEnum::operator Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Value() const { return (Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorStyleOperationEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[348]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorStyleOperationEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[348]); } /* Ifc4x3_rc1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDoorStyleOperationEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDoorStyleOperationEnum::Value Ifc4x3_rc1::IfcDoorStyleOperationEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDoorStyleOperationEnum::Value) Ifc4x3_rc1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDoorStyleOperationEnum::operator Ifc4x3_rc1::IfcDoorStyleOperationEnum::Value() const { return (Ifc4x3_rc1::IfcDoorStyleOperationEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[350]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[350]); } /* Ifc4x3_rc1::IfcDoorTypeEnum::IfcDoorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDoorTypeEnum::IfcDoorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDoorTypeEnum::IfcDoorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDoorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDoorTypeEnum::IfcDoorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDoorTypeEnum::Value Ifc4x3_rc1::IfcDoorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDoorTypeEnum::Value) Ifc4x3_rc1::IfcDoorTypeEnum::IfcDoorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDoorTypeEnum::operator Ifc4x3_rc1::IfcDoorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDoorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorTypeOperationEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[351]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDoorTypeOperationEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[351]); } /* Ifc4x3_rc1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDoorTypeOperationEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value Ifc4x3_rc1::IfcDoorTypeOperationEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value) Ifc4x3_rc1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDoorTypeOperationEnum::operator Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value() const { return (Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDuctFittingTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[357]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDuctFittingTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[357]); } /* Ifc4x3_rc1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDuctFittingTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value Ifc4x3_rc1::IfcDuctFittingTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value) Ifc4x3_rc1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDuctFittingTypeEnum::operator Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDuctSegmentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[360]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[360]); } /* Ifc4x3_rc1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDuctSegmentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value Ifc4x3_rc1::IfcDuctSegmentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value) Ifc4x3_rc1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDuctSegmentTypeEnum::operator Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDuctSilencerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[363]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[363]); } /* Ifc4x3_rc1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcDuctSilencerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value Ifc4x3_rc1::IfcDuctSilencerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value) Ifc4x3_rc1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcDuctSilencerTypeEnum::operator Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEarthworksCutTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[367]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[367]); } /* Ifc4x3_rc1::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcEarthworksCutTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Value Ifc4x3_rc1::IfcEarthworksCutTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Value) Ifc4x3_rc1::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcEarthworksCutTypeEnum::operator Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Value() const { return (Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEarthworksFillTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[370]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[370]); } /* Ifc4x3_rc1::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcEarthworksFillTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Value Ifc4x3_rc1::IfcEarthworksFillTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Value) Ifc4x3_rc1::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcEarthworksFillTypeEnum::operator Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Value() const { return (Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricApplianceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[376]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[376]); } /* Ifc4x3_rc1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElectricApplianceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value Ifc4x3_rc1::IfcElectricApplianceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value) Ifc4x3_rc1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElectricApplianceTypeEnum::operator Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[383]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[383]); } /* Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value) Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::operator Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value() const { return (Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[386]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[386]); } /* Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value) Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::operator Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[389]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[389]); } /* Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value) Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::operator Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[392]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[392]); } /* Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value) Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::operator Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricMotorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[395]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricMotorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[395]); } /* Ifc4x3_rc1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElectricMotorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value Ifc4x3_rc1::IfcElectricMotorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value) Ifc4x3_rc1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElectricMotorTypeEnum::operator Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[399]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[399]); } /* Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value) Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::operator Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value() const { return (Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElementAssemblyTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[405]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[405]); } /* Ifc4x3_rc1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElementAssemblyTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value Ifc4x3_rc1::IfcElementAssemblyTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value) Ifc4x3_rc1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElementAssemblyTypeEnum::operator Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value() const { return (Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElementCompositionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[408]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcElementCompositionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[408]); } /* Ifc4x3_rc1::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcElementCompositionEnum::IfcElementCompositionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcElementCompositionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcElementCompositionEnum::IfcElementCompositionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcElementCompositionEnum::Value Ifc4x3_rc1::IfcElementCompositionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcElementCompositionEnum::Value) Ifc4x3_rc1::IfcElementCompositionEnum::IfcElementCompositionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcElementCompositionEnum::operator Ifc4x3_rc1::IfcElementCompositionEnum::Value() const { return (Ifc4x3_rc1::IfcElementCompositionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEngineTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[418]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEngineTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[418]); } /* Ifc4x3_rc1::IfcEngineTypeEnum::IfcEngineTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcEngineTypeEnum::IfcEngineTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcEngineTypeEnum::IfcEngineTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcEngineTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcEngineTypeEnum::IfcEngineTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcEngineTypeEnum::Value Ifc4x3_rc1::IfcEngineTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcEngineTypeEnum::Value) Ifc4x3_rc1::IfcEngineTypeEnum::IfcEngineTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcEngineTypeEnum::operator Ifc4x3_rc1::IfcEngineTypeEnum::Value() const { return (Ifc4x3_rc1::IfcEngineTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[421]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[421]); } /* Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value) Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::operator Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEvaporatorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[424]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEvaporatorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[424]); } /* Ifc4x3_rc1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcEvaporatorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value Ifc4x3_rc1::IfcEvaporatorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value) Ifc4x3_rc1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcEvaporatorTypeEnum::operator Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEventTriggerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[427]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEventTriggerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[427]); } /* Ifc4x3_rc1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcEventTriggerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value Ifc4x3_rc1::IfcEventTriggerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value) Ifc4x3_rc1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcEventTriggerTypeEnum::operator Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEventTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[429]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcEventTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[429]); } /* Ifc4x3_rc1::IfcEventTypeEnum::IfcEventTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcEventTypeEnum::IfcEventTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcEventTypeEnum::IfcEventTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcEventTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcEventTypeEnum::IfcEventTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcEventTypeEnum::Value Ifc4x3_rc1::IfcEventTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcEventTypeEnum::Value) Ifc4x3_rc1::IfcEventTypeEnum::IfcEventTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcEventTypeEnum::operator Ifc4x3_rc1::IfcEventTypeEnum::Value() const { return (Ifc4x3_rc1::IfcEventTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[438]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[438]); } /* Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Value Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Value) Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::operator Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[451]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[451]); } /* Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::Value Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::Value) Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::operator Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFacilityUsageEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[453]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFacilityUsageEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[453]); } /* Ifc4x3_rc1::IfcFacilityUsageEnum::IfcFacilityUsageEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFacilityUsageEnum::IfcFacilityUsageEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFacilityUsageEnum::IfcFacilityUsageEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFacilityUsageEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFacilityUsageEnum::IfcFacilityUsageEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFacilityUsageEnum::Value Ifc4x3_rc1::IfcFacilityUsageEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFacilityUsageEnum::Value) Ifc4x3_rc1::IfcFacilityUsageEnum::IfcFacilityUsageEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFacilityUsageEnum::operator Ifc4x3_rc1::IfcFacilityUsageEnum::Value() const { return (Ifc4x3_rc1::IfcFacilityUsageEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFanTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[457]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFanTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[457]); } /* Ifc4x3_rc1::IfcFanTypeEnum::IfcFanTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFanTypeEnum::IfcFanTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFanTypeEnum::IfcFanTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFanTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFanTypeEnum::IfcFanTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFanTypeEnum::Value Ifc4x3_rc1::IfcFanTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFanTypeEnum::Value) Ifc4x3_rc1::IfcFanTypeEnum::IfcFanTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFanTypeEnum::operator Ifc4x3_rc1::IfcFanTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFanTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFastenerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[460]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFastenerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[460]); } /* Ifc4x3_rc1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFastenerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFastenerTypeEnum::IfcFastenerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFastenerTypeEnum::Value Ifc4x3_rc1::IfcFastenerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFastenerTypeEnum::Value) Ifc4x3_rc1::IfcFastenerTypeEnum::IfcFastenerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFastenerTypeEnum::operator Ifc4x3_rc1::IfcFastenerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFastenerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFilterTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[470]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFilterTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[470]); } /* Ifc4x3_rc1::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFilterTypeEnum::IfcFilterTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFilterTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFilterTypeEnum::IfcFilterTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFilterTypeEnum::Value Ifc4x3_rc1::IfcFilterTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFilterTypeEnum::Value) Ifc4x3_rc1::IfcFilterTypeEnum::IfcFilterTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFilterTypeEnum::operator Ifc4x3_rc1::IfcFilterTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFilterTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[473]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[473]); } /* Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value) Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::operator Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFlowDirectionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[477]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFlowDirectionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[477]); } /* Ifc4x3_rc1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFlowDirectionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFlowDirectionEnum::IfcFlowDirectionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFlowDirectionEnum::Value Ifc4x3_rc1::IfcFlowDirectionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFlowDirectionEnum::Value) Ifc4x3_rc1::IfcFlowDirectionEnum::IfcFlowDirectionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFlowDirectionEnum::operator Ifc4x3_rc1::IfcFlowDirectionEnum::Value() const { return (Ifc4x3_rc1::IfcFlowDirectionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[482]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[482]); } /* Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value) Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::operator Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFlowMeterTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[485]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFlowMeterTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[485]); } /* Ifc4x3_rc1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFlowMeterTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value Ifc4x3_rc1::IfcFlowMeterTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value) Ifc4x3_rc1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFlowMeterTypeEnum::operator Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFootingTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[501]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFootingTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[501]); } /* Ifc4x3_rc1::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFootingTypeEnum::IfcFootingTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFootingTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFootingTypeEnum::IfcFootingTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFootingTypeEnum::Value Ifc4x3_rc1::IfcFootingTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFootingTypeEnum::Value) Ifc4x3_rc1::IfcFootingTypeEnum::IfcFootingTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFootingTypeEnum::operator Ifc4x3_rc1::IfcFootingTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFootingTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFurnitureTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[508]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcFurnitureTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[508]); } /* Ifc4x3_rc1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcFurnitureTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcFurnitureTypeEnum::Value Ifc4x3_rc1::IfcFurnitureTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcFurnitureTypeEnum::Value) Ifc4x3_rc1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcFurnitureTypeEnum::operator Ifc4x3_rc1::IfcFurnitureTypeEnum::Value() const { return (Ifc4x3_rc1::IfcFurnitureTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcGeographicElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[511]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcGeographicElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[511]); } /* Ifc4x3_rc1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcGeographicElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value Ifc4x3_rc1::IfcGeographicElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value) Ifc4x3_rc1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcGeographicElementTypeEnum::operator Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcGeometricProjectionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[513]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcGeometricProjectionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[513]); } /* Ifc4x3_rc1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcGeometricProjectionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcGeometricProjectionEnum::Value Ifc4x3_rc1::IfcGeometricProjectionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcGeometricProjectionEnum::Value) Ifc4x3_rc1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcGeometricProjectionEnum::operator Ifc4x3_rc1::IfcGeometricProjectionEnum::Value() const { return (Ifc4x3_rc1::IfcGeometricProjectionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcGlobalOrLocalEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[525]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[525]); } /* Ifc4x3_rc1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcGlobalOrLocalEnum::ToString(Value v) { return Ifc4x3_rc1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value Ifc4x3_rc1::IfcGlobalOrLocalEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value) Ifc4x3_rc1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcGlobalOrLocalEnum::operator Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value() const { return (Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcGridTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[530]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcGridTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[530]); } /* Ifc4x3_rc1::IfcGridTypeEnum::IfcGridTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcGridTypeEnum::IfcGridTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcGridTypeEnum::IfcGridTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcGridTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcGridTypeEnum::IfcGridTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcGridTypeEnum::Value Ifc4x3_rc1::IfcGridTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcGridTypeEnum::Value) Ifc4x3_rc1::IfcGridTypeEnum::IfcGridTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcGridTypeEnum::operator Ifc4x3_rc1::IfcGridTypeEnum::Value() const { return (Ifc4x3_rc1::IfcGridTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcHeatExchangerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[536]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[536]); } /* Ifc4x3_rc1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcHeatExchangerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value Ifc4x3_rc1::IfcHeatExchangerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value) Ifc4x3_rc1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcHeatExchangerTypeEnum::operator Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcHumidifierTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[541]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcHumidifierTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[541]); } /* Ifc4x3_rc1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcHumidifierTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcHumidifierTypeEnum::Value Ifc4x3_rc1::IfcHumidifierTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcHumidifierTypeEnum::Value) Ifc4x3_rc1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcHumidifierTypeEnum::operator Ifc4x3_rc1::IfcHumidifierTypeEnum::Value() const { return (Ifc4x3_rc1::IfcHumidifierTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[547]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[547]); } /* Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::Value Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::Value) Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::operator Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcInterceptorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[561]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcInterceptorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[561]); } /* Ifc4x3_rc1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcInterceptorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcInterceptorTypeEnum::Value Ifc4x3_rc1::IfcInterceptorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcInterceptorTypeEnum::Value) Ifc4x3_rc1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcInterceptorTypeEnum::operator Ifc4x3_rc1::IfcInterceptorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcInterceptorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcInternalOrExternalEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[563]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcInternalOrExternalEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[563]); } /* Ifc4x3_rc1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcInternalOrExternalEnum::ToString(Value v) { return Ifc4x3_rc1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcInternalOrExternalEnum::Value Ifc4x3_rc1::IfcInternalOrExternalEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcInternalOrExternalEnum::Value) Ifc4x3_rc1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcInternalOrExternalEnum::operator Ifc4x3_rc1::IfcInternalOrExternalEnum::Value() const { return (Ifc4x3_rc1::IfcInternalOrExternalEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcInventoryTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[566]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcInventoryTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[566]); } /* Ifc4x3_rc1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcInventoryTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcInventoryTypeEnum::IfcInventoryTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcInventoryTypeEnum::Value Ifc4x3_rc1::IfcInventoryTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcInventoryTypeEnum::Value) Ifc4x3_rc1::IfcInventoryTypeEnum::IfcInventoryTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcInventoryTypeEnum::operator Ifc4x3_rc1::IfcInventoryTypeEnum::Value() const { return (Ifc4x3_rc1::IfcInventoryTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcJunctionBoxTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[574]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[574]); } /* Ifc4x3_rc1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcJunctionBoxTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value Ifc4x3_rc1::IfcJunctionBoxTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value) Ifc4x3_rc1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcJunctionBoxTypeEnum::operator Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value() const { return (Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcKnotType::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[578]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcKnotType::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[578]); } /* Ifc4x3_rc1::IfcKnotType::IfcKnotType(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcKnotType::IfcKnotType(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcKnotType::IfcKnotType(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcKnotType::ToString(Value v) { return Ifc4x3_rc1::IfcKnotType::IfcKnotType::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcKnotType::Value Ifc4x3_rc1::IfcKnotType::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcKnotType::Value) Ifc4x3_rc1::IfcKnotType::IfcKnotType::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcKnotType::operator Ifc4x3_rc1::IfcKnotType::Value() const { return (Ifc4x3_rc1::IfcKnotType::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLaborResourceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[582]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLaborResourceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[582]); } /* Ifc4x3_rc1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLaborResourceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value Ifc4x3_rc1::IfcLaborResourceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value) Ifc4x3_rc1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLaborResourceTypeEnum::operator Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLampTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[586]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLampTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[586]); } /* Ifc4x3_rc1::IfcLampTypeEnum::IfcLampTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLampTypeEnum::IfcLampTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLampTypeEnum::IfcLampTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLampTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLampTypeEnum::IfcLampTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLampTypeEnum::Value Ifc4x3_rc1::IfcLampTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLampTypeEnum::Value) Ifc4x3_rc1::IfcLampTypeEnum::IfcLampTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLampTypeEnum::operator Ifc4x3_rc1::IfcLampTypeEnum::Value() const { return (Ifc4x3_rc1::IfcLampTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLayerSetDirectionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[589]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLayerSetDirectionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[589]); } /* Ifc4x3_rc1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLayerSetDirectionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value Ifc4x3_rc1::IfcLayerSetDirectionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value) Ifc4x3_rc1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLayerSetDirectionEnum::operator Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value() const { return (Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLightDistributionCurveEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[594]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLightDistributionCurveEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[594]); } /* Ifc4x3_rc1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLightDistributionCurveEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLightDistributionCurveEnum::Value Ifc4x3_rc1::IfcLightDistributionCurveEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLightDistributionCurveEnum::Value) Ifc4x3_rc1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLightDistributionCurveEnum::operator Ifc4x3_rc1::IfcLightDistributionCurveEnum::Value() const { return (Ifc4x3_rc1::IfcLightDistributionCurveEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLightEmissionSourceEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[597]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLightEmissionSourceEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[597]); } /* Ifc4x3_rc1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLightEmissionSourceEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLightEmissionSourceEnum::Value Ifc4x3_rc1::IfcLightEmissionSourceEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLightEmissionSourceEnum::Value) Ifc4x3_rc1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLightEmissionSourceEnum::operator Ifc4x3_rc1::IfcLightEmissionSourceEnum::Value() const { return (Ifc4x3_rc1::IfcLightEmissionSourceEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLightFixtureTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[600]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLightFixtureTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[600]); } /* Ifc4x3_rc1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLightFixtureTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value Ifc4x3_rc1::IfcLightFixtureTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value) Ifc4x3_rc1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLightFixtureTypeEnum::operator Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value() const { return (Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[623]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[623]); } /* Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value) Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::operator Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value() const { return (Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLoadGroupTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[624]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLoadGroupTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[624]); } /* Ifc4x3_rc1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLoadGroupTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLoadGroupTypeEnum::Value Ifc4x3_rc1::IfcLoadGroupTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLoadGroupTypeEnum::Value) Ifc4x3_rc1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLoadGroupTypeEnum::operator Ifc4x3_rc1::IfcLoadGroupTypeEnum::Value() const { return (Ifc4x3_rc1::IfcLoadGroupTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLogicalOperatorEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[627]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcLogicalOperatorEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[627]); } /* Ifc4x3_rc1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcLogicalOperatorEnum::ToString(Value v) { return Ifc4x3_rc1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcLogicalOperatorEnum::Value Ifc4x3_rc1::IfcLogicalOperatorEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcLogicalOperatorEnum::Value) Ifc4x3_rc1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcLogicalOperatorEnum::operator Ifc4x3_rc1::IfcLogicalOperatorEnum::Value() const { return (Ifc4x3_rc1::IfcLogicalOperatorEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMarineFacilityTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[639]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[639]); } /* Ifc4x3_rc1::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcMarineFacilityTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Value Ifc4x3_rc1::IfcMarineFacilityTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Value) Ifc4x3_rc1::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcMarineFacilityTypeEnum::operator Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Value() const { return (Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMarinePartTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[640]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMarinePartTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[640]); } /* Ifc4x3_rc1::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcMarinePartTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcMarinePartTypeEnum::Value Ifc4x3_rc1::IfcMarinePartTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcMarinePartTypeEnum::Value) Ifc4x3_rc1::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcMarinePartTypeEnum::operator Ifc4x3_rc1::IfcMarinePartTypeEnum::Value() const { return (Ifc4x3_rc1::IfcMarinePartTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[669]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[669]); } /* Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value) Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::operator Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[672]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[672]); } /* Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value) Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::operator Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMemberTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[676]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMemberTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[676]); } /* Ifc4x3_rc1::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcMemberTypeEnum::IfcMemberTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcMemberTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcMemberTypeEnum::IfcMemberTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcMemberTypeEnum::Value Ifc4x3_rc1::IfcMemberTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcMemberTypeEnum::Value) Ifc4x3_rc1::IfcMemberTypeEnum::IfcMemberTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcMemberTypeEnum::operator Ifc4x3_rc1::IfcMemberTypeEnum::Value() const { return (Ifc4x3_rc1::IfcMemberTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[682]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[682]); } /* Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value) Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::operator Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMooringDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[698]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[698]); } /* Ifc4x3_rc1::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcMooringDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value Ifc4x3_rc1::IfcMooringDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value) Ifc4x3_rc1::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcMooringDeviceTypeEnum::operator Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMotorConnectionTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[701]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[701]); } /* Ifc4x3_rc1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcMotorConnectionTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value Ifc4x3_rc1::IfcMotorConnectionTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value) Ifc4x3_rc1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcMotorConnectionTypeEnum::operator Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value() const { return (Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcNavigationElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[705]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcNavigationElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[705]); } /* Ifc4x3_rc1::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcNavigationElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value Ifc4x3_rc1::IfcNavigationElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value) Ifc4x3_rc1::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcNavigationElementTypeEnum::operator Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcNullStyle::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[708]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcNullStyle::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[708]); } /* Ifc4x3_rc1::IfcNullStyle::IfcNullStyle(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcNullStyle::IfcNullStyle(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcNullStyle::IfcNullStyle(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcNullStyle::ToString(Value v) { return Ifc4x3_rc1::IfcNullStyle::IfcNullStyle::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcNullStyle::Value Ifc4x3_rc1::IfcNullStyle::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcNullStyle::Value) Ifc4x3_rc1::IfcNullStyle::IfcNullStyle::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcNullStyle::operator Ifc4x3_rc1::IfcNullStyle::Value() const { return (Ifc4x3_rc1::IfcNullStyle::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcObjectTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[716]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcObjectTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[716]); } /* Ifc4x3_rc1::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcObjectTypeEnum::IfcObjectTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcObjectTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcObjectTypeEnum::IfcObjectTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcObjectTypeEnum::Value Ifc4x3_rc1::IfcObjectTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcObjectTypeEnum::Value) Ifc4x3_rc1::IfcObjectTypeEnum::IfcObjectTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcObjectTypeEnum::operator Ifc4x3_rc1::IfcObjectTypeEnum::Value() const { return (Ifc4x3_rc1::IfcObjectTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcObjectiveEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[713]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcObjectiveEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[713]); } /* Ifc4x3_rc1::IfcObjectiveEnum::IfcObjectiveEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcObjectiveEnum::IfcObjectiveEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcObjectiveEnum::IfcObjectiveEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcObjectiveEnum::ToString(Value v) { return Ifc4x3_rc1::IfcObjectiveEnum::IfcObjectiveEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcObjectiveEnum::Value Ifc4x3_rc1::IfcObjectiveEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcObjectiveEnum::Value) Ifc4x3_rc1::IfcObjectiveEnum::IfcObjectiveEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcObjectiveEnum::operator Ifc4x3_rc1::IfcObjectiveEnum::Value() const { return (Ifc4x3_rc1::IfcObjectiveEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcOccupantTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[718]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcOccupantTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[718]); } /* Ifc4x3_rc1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcOccupantTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcOccupantTypeEnum::IfcOccupantTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcOccupantTypeEnum::Value Ifc4x3_rc1::IfcOccupantTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcOccupantTypeEnum::Value) Ifc4x3_rc1::IfcOccupantTypeEnum::IfcOccupantTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcOccupantTypeEnum::operator Ifc4x3_rc1::IfcOccupantTypeEnum::Value() const { return (Ifc4x3_rc1::IfcOccupantTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcOpeningElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[725]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcOpeningElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[725]); } /* Ifc4x3_rc1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcOpeningElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcOpeningElementTypeEnum::Value Ifc4x3_rc1::IfcOpeningElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcOpeningElementTypeEnum::Value) Ifc4x3_rc1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcOpeningElementTypeEnum::operator Ifc4x3_rc1::IfcOpeningElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcOpeningElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcOutletTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[735]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcOutletTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[735]); } /* Ifc4x3_rc1::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcOutletTypeEnum::IfcOutletTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcOutletTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcOutletTypeEnum::IfcOutletTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcOutletTypeEnum::Value Ifc4x3_rc1::IfcOutletTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcOutletTypeEnum::Value) Ifc4x3_rc1::IfcOutletTypeEnum::IfcOutletTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcOutletTypeEnum::operator Ifc4x3_rc1::IfcOutletTypeEnum::Value() const { return (Ifc4x3_rc1::IfcOutletTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[744]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[744]); } /* Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Value Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Value) Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::operator Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Value() const { return (Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[745]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[745]); } /* Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Value Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Value) Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::operator Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Value() const { return (Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPermitTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[748]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPermitTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[748]); } /* Ifc4x3_rc1::IfcPermitTypeEnum::IfcPermitTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPermitTypeEnum::IfcPermitTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPermitTypeEnum::IfcPermitTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPermitTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPermitTypeEnum::IfcPermitTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPermitTypeEnum::Value Ifc4x3_rc1::IfcPermitTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPermitTypeEnum::Value) Ifc4x3_rc1::IfcPermitTypeEnum::IfcPermitTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPermitTypeEnum::operator Ifc4x3_rc1::IfcPermitTypeEnum::Value() const { return (Ifc4x3_rc1::IfcPermitTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[753]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[753]); } /* Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value) Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::operator Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value() const { return (Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPileConstructionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[757]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPileConstructionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[757]); } /* Ifc4x3_rc1::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPileConstructionEnum::IfcPileConstructionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPileConstructionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPileConstructionEnum::IfcPileConstructionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPileConstructionEnum::Value Ifc4x3_rc1::IfcPileConstructionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPileConstructionEnum::Value) Ifc4x3_rc1::IfcPileConstructionEnum::IfcPileConstructionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPileConstructionEnum::operator Ifc4x3_rc1::IfcPileConstructionEnum::Value() const { return (Ifc4x3_rc1::IfcPileConstructionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPileTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[759]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPileTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[759]); } /* Ifc4x3_rc1::IfcPileTypeEnum::IfcPileTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPileTypeEnum::IfcPileTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPileTypeEnum::IfcPileTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPileTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPileTypeEnum::IfcPileTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPileTypeEnum::Value Ifc4x3_rc1::IfcPileTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPileTypeEnum::Value) Ifc4x3_rc1::IfcPileTypeEnum::IfcPileTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPileTypeEnum::operator Ifc4x3_rc1::IfcPileTypeEnum::Value() const { return (Ifc4x3_rc1::IfcPileTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPipeFittingTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[762]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPipeFittingTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[762]); } /* Ifc4x3_rc1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPipeFittingTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value Ifc4x3_rc1::IfcPipeFittingTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value) Ifc4x3_rc1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPipeFittingTypeEnum::operator Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value() const { return (Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPipeSegmentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[765]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[765]); } /* Ifc4x3_rc1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPipeSegmentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value Ifc4x3_rc1::IfcPipeSegmentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value) Ifc4x3_rc1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPipeSegmentTypeEnum::operator Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPlateTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[777]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPlateTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[777]); } /* Ifc4x3_rc1::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPlateTypeEnum::IfcPlateTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPlateTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPlateTypeEnum::IfcPlateTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPlateTypeEnum::Value Ifc4x3_rc1::IfcPlateTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPlateTypeEnum::Value) Ifc4x3_rc1::IfcPlateTypeEnum::IfcPlateTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPlateTypeEnum::operator Ifc4x3_rc1::IfcPlateTypeEnum::Value() const { return (Ifc4x3_rc1::IfcPlateTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[800]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[800]); } /* Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::ToString(Value v) { return Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value) Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::operator Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value() const { return (Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProcedureTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[811]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProcedureTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[811]); } /* Ifc4x3_rc1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcProcedureTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcProcedureTypeEnum::IfcProcedureTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcProcedureTypeEnum::Value Ifc4x3_rc1::IfcProcedureTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcProcedureTypeEnum::Value) Ifc4x3_rc1::IfcProcedureTypeEnum::IfcProcedureTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcProcedureTypeEnum::operator Ifc4x3_rc1::IfcProcedureTypeEnum::Value() const { return (Ifc4x3_rc1::IfcProcedureTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProfileTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[821]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProfileTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[821]); } /* Ifc4x3_rc1::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcProfileTypeEnum::IfcProfileTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcProfileTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcProfileTypeEnum::IfcProfileTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcProfileTypeEnum::Value Ifc4x3_rc1::IfcProfileTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcProfileTypeEnum::Value) Ifc4x3_rc1::IfcProfileTypeEnum::IfcProfileTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcProfileTypeEnum::operator Ifc4x3_rc1::IfcProfileTypeEnum::Value() const { return (Ifc4x3_rc1::IfcProfileTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProjectOrderTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[829]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProjectOrderTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[829]); } /* Ifc4x3_rc1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcProjectOrderTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcProjectOrderTypeEnum::Value Ifc4x3_rc1::IfcProjectOrderTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcProjectOrderTypeEnum::Value) Ifc4x3_rc1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcProjectOrderTypeEnum::operator Ifc4x3_rc1::IfcProjectOrderTypeEnum::Value() const { return (Ifc4x3_rc1::IfcProjectOrderTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[824]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[824]); } /* Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::ToString(Value v) { return Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value) Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::operator Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value() const { return (Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProjectionElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[826]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProjectionElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[826]); } /* Ifc4x3_rc1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcProjectionElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcProjectionElementTypeEnum::Value Ifc4x3_rc1::IfcProjectionElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcProjectionElementTypeEnum::Value) Ifc4x3_rc1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcProjectionElementTypeEnum::operator Ifc4x3_rc1::IfcProjectionElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcProjectionElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[844]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[844]); } /* Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Value Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Value) Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::operator Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Value() const { return (Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[852]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[852]); } /* Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value) Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::operator Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value() const { return (Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[854]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[854]); } /* Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value) Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::operator Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPumpTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[858]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcPumpTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[858]); } /* Ifc4x3_rc1::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcPumpTypeEnum::IfcPumpTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcPumpTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcPumpTypeEnum::IfcPumpTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcPumpTypeEnum::Value Ifc4x3_rc1::IfcPumpTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcPumpTypeEnum::Value) Ifc4x3_rc1::IfcPumpTypeEnum::IfcPumpTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcPumpTypeEnum::operator Ifc4x3_rc1::IfcPumpTypeEnum::Value() const { return (Ifc4x3_rc1::IfcPumpTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRailTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[872]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRailTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[872]); } /* Ifc4x3_rc1::IfcRailTypeEnum::IfcRailTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRailTypeEnum::IfcRailTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRailTypeEnum::IfcRailTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRailTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRailTypeEnum::IfcRailTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRailTypeEnum::Value Ifc4x3_rc1::IfcRailTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRailTypeEnum::Value) Ifc4x3_rc1::IfcRailTypeEnum::IfcRailTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRailTypeEnum::operator Ifc4x3_rc1::IfcRailTypeEnum::Value() const { return (Ifc4x3_rc1::IfcRailTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRailingTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[870]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRailingTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[870]); } /* Ifc4x3_rc1::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRailingTypeEnum::IfcRailingTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRailingTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRailingTypeEnum::IfcRailingTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRailingTypeEnum::Value Ifc4x3_rc1::IfcRailingTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRailingTypeEnum::Value) Ifc4x3_rc1::IfcRailingTypeEnum::IfcRailingTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRailingTypeEnum::operator Ifc4x3_rc1::IfcRailingTypeEnum::Value() const { return (Ifc4x3_rc1::IfcRailingTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRailwayPartTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[874]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRailwayPartTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[874]); } /* Ifc4x3_rc1::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRailwayPartTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRailwayPartTypeEnum::Value Ifc4x3_rc1::IfcRailwayPartTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRailwayPartTypeEnum::Value) Ifc4x3_rc1::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRailwayPartTypeEnum::operator Ifc4x3_rc1::IfcRailwayPartTypeEnum::Value() const { return (Ifc4x3_rc1::IfcRailwayPartTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRampFlightTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[878]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRampFlightTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[878]); } /* Ifc4x3_rc1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRampFlightTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRampFlightTypeEnum::Value Ifc4x3_rc1::IfcRampFlightTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRampFlightTypeEnum::Value) Ifc4x3_rc1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRampFlightTypeEnum::operator Ifc4x3_rc1::IfcRampFlightTypeEnum::Value() const { return (Ifc4x3_rc1::IfcRampFlightTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRampTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[880]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRampTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[880]); } /* Ifc4x3_rc1::IfcRampTypeEnum::IfcRampTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRampTypeEnum::IfcRampTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRampTypeEnum::IfcRampTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRampTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRampTypeEnum::IfcRampTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRampTypeEnum::Value Ifc4x3_rc1::IfcRampTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRampTypeEnum::Value) Ifc4x3_rc1::IfcRampTypeEnum::IfcRampTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRampTypeEnum::operator Ifc4x3_rc1::IfcRampTypeEnum::Value() const { return (Ifc4x3_rc1::IfcRampTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRecurrenceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[890]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRecurrenceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[890]); } /* Ifc4x3_rc1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRecurrenceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRecurrenceTypeEnum::Value Ifc4x3_rc1::IfcRecurrenceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRecurrenceTypeEnum::Value) Ifc4x3_rc1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRecurrenceTypeEnum::operator Ifc4x3_rc1::IfcRecurrenceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcRecurrenceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReferentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[893]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReferentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[893]); } /* Ifc4x3_rc1::IfcReferentTypeEnum::IfcReferentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcReferentTypeEnum::IfcReferentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcReferentTypeEnum::IfcReferentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcReferentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcReferentTypeEnum::IfcReferentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcReferentTypeEnum::Value Ifc4x3_rc1::IfcReferentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcReferentTypeEnum::Value) Ifc4x3_rc1::IfcReferentTypeEnum::IfcReferentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcReferentTypeEnum::operator Ifc4x3_rc1::IfcReferentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcReferentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReflectanceMethodEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[894]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReflectanceMethodEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[894]); } /* Ifc4x3_rc1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcReflectanceMethodEnum::ToString(Value v) { return Ifc4x3_rc1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcReflectanceMethodEnum::Value Ifc4x3_rc1::IfcReflectanceMethodEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcReflectanceMethodEnum::Value) Ifc4x3_rc1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcReflectanceMethodEnum::operator Ifc4x3_rc1::IfcReflectanceMethodEnum::Value() const { return (Ifc4x3_rc1::IfcReflectanceMethodEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[897]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[897]); } /* Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Value Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Value) Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::operator Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Value() const { return (Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcingBarRoleEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[901]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[901]); } /* Ifc4x3_rc1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcReinforcingBarRoleEnum::ToString(Value v) { return Ifc4x3_rc1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Value Ifc4x3_rc1::IfcReinforcingBarRoleEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Value) Ifc4x3_rc1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcReinforcingBarRoleEnum::operator Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Value() const { return (Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[902]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[902]); } /* Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::ToString(Value v) { return Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value) Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::operator Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value() const { return (Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcingBarTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[904]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[904]); } /* Ifc4x3_rc1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcReinforcingBarTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value Ifc4x3_rc1::IfcReinforcingBarTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value) Ifc4x3_rc1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcReinforcingBarTypeEnum::operator Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value() const { return (Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[909]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[909]); } /* Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value) Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::operator Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value() const { return (Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRoadPartTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[977]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRoadPartTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[977]); } /* Ifc4x3_rc1::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRoadPartTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRoadPartTypeEnum::Value Ifc4x3_rc1::IfcRoadPartTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRoadPartTypeEnum::Value) Ifc4x3_rc1::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRoadPartTypeEnum::operator Ifc4x3_rc1::IfcRoadPartTypeEnum::Value() const { return (Ifc4x3_rc1::IfcRoadPartTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRoleEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[978]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRoleEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[978]); } /* Ifc4x3_rc1::IfcRoleEnum::IfcRoleEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRoleEnum::IfcRoleEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRoleEnum::IfcRoleEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRoleEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRoleEnum::IfcRoleEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRoleEnum::Value Ifc4x3_rc1::IfcRoleEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRoleEnum::Value) Ifc4x3_rc1::IfcRoleEnum::IfcRoleEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRoleEnum::operator Ifc4x3_rc1::IfcRoleEnum::Value() const { return (Ifc4x3_rc1::IfcRoleEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRoofTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[981]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcRoofTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[981]); } /* Ifc4x3_rc1::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcRoofTypeEnum::IfcRoofTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcRoofTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcRoofTypeEnum::IfcRoofTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcRoofTypeEnum::Value Ifc4x3_rc1::IfcRoofTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcRoofTypeEnum::Value) Ifc4x3_rc1::IfcRoofTypeEnum::IfcRoofTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcRoofTypeEnum::operator Ifc4x3_rc1::IfcRoofTypeEnum::Value() const { return (Ifc4x3_rc1::IfcRoofTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSIPrefix::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1026]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSIPrefix::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1026]); } /* Ifc4x3_rc1::IfcSIPrefix::IfcSIPrefix(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSIPrefix::IfcSIPrefix(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSIPrefix::IfcSIPrefix(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSIPrefix::ToString(Value v) { return Ifc4x3_rc1::IfcSIPrefix::IfcSIPrefix::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSIPrefix::Value Ifc4x3_rc1::IfcSIPrefix::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSIPrefix::Value) Ifc4x3_rc1::IfcSIPrefix::IfcSIPrefix::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSIPrefix::operator Ifc4x3_rc1::IfcSIPrefix::Value() const { return (Ifc4x3_rc1::IfcSIPrefix::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSIUnitName::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1029]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSIUnitName::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1029]); } /* Ifc4x3_rc1::IfcSIUnitName::IfcSIUnitName(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSIUnitName::IfcSIUnitName(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSIUnitName::IfcSIUnitName(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSIUnitName::ToString(Value v) { return Ifc4x3_rc1::IfcSIUnitName::IfcSIUnitName::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSIUnitName::Value Ifc4x3_rc1::IfcSIUnitName::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSIUnitName::Value) Ifc4x3_rc1::IfcSIUnitName::IfcSIUnitName::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSIUnitName::operator Ifc4x3_rc1::IfcSIUnitName::Value() const { return (Ifc4x3_rc1::IfcSIUnitName::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[990]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[990]); } /* Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value) Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::operator Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSectionTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1001]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSectionTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1001]); } /* Ifc4x3_rc1::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSectionTypeEnum::IfcSectionTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSectionTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSectionTypeEnum::IfcSectionTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSectionTypeEnum::Value Ifc4x3_rc1::IfcSectionTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSectionTypeEnum::Value) Ifc4x3_rc1::IfcSectionTypeEnum::IfcSectionTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSectionTypeEnum::operator Ifc4x3_rc1::IfcSectionTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSectionTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSensorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1005]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSensorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1005]); } /* Ifc4x3_rc1::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSensorTypeEnum::IfcSensorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSensorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSensorTypeEnum::IfcSensorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSensorTypeEnum::Value Ifc4x3_rc1::IfcSensorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSensorTypeEnum::Value) Ifc4x3_rc1::IfcSensorTypeEnum::IfcSensorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSensorTypeEnum::operator Ifc4x3_rc1::IfcSensorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSensorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSequenceEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1006]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSequenceEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1006]); } /* Ifc4x3_rc1::IfcSequenceEnum::IfcSequenceEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSequenceEnum::IfcSequenceEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSequenceEnum::IfcSequenceEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSequenceEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSequenceEnum::IfcSequenceEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSequenceEnum::Value Ifc4x3_rc1::IfcSequenceEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSequenceEnum::Value) Ifc4x3_rc1::IfcSequenceEnum::IfcSequenceEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSequenceEnum::operator Ifc4x3_rc1::IfcSequenceEnum::Value() const { return (Ifc4x3_rc1::IfcSequenceEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcShadingDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1009]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1009]); } /* Ifc4x3_rc1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcShadingDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value Ifc4x3_rc1::IfcShadingDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value) Ifc4x3_rc1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcShadingDeviceTypeEnum::operator Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSignTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1021]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSignTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1021]); } /* Ifc4x3_rc1::IfcSignTypeEnum::IfcSignTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSignTypeEnum::IfcSignTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSignTypeEnum::IfcSignTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSignTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSignTypeEnum::IfcSignTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSignTypeEnum::Value Ifc4x3_rc1::IfcSignTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSignTypeEnum::Value) Ifc4x3_rc1::IfcSignTypeEnum::IfcSignTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSignTypeEnum::operator Ifc4x3_rc1::IfcSignTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSignTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSignalTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1019]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSignalTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1019]); } /* Ifc4x3_rc1::IfcSignalTypeEnum::IfcSignalTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSignalTypeEnum::IfcSignalTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSignalTypeEnum::IfcSignalTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSignalTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSignalTypeEnum::IfcSignalTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSignalTypeEnum::Value Ifc4x3_rc1::IfcSignalTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSignalTypeEnum::Value) Ifc4x3_rc1::IfcSignalTypeEnum::IfcSignalTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSignalTypeEnum::operator Ifc4x3_rc1::IfcSignalTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSignalTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1024]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1024]); } /* Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Value Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Value) Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::operator Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSlabTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1035]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSlabTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1035]); } /* Ifc4x3_rc1::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSlabTypeEnum::IfcSlabTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSlabTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSlabTypeEnum::IfcSlabTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSlabTypeEnum::Value Ifc4x3_rc1::IfcSlabTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSlabTypeEnum::Value) Ifc4x3_rc1::IfcSlabTypeEnum::IfcSlabTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSlabTypeEnum::operator Ifc4x3_rc1::IfcSlabTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSlabTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSolarDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1039]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1039]); } /* Ifc4x3_rc1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSolarDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value Ifc4x3_rc1::IfcSolarDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value) Ifc4x3_rc1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSolarDeviceTypeEnum::operator Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1052]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1052]); } /* Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value) Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::operator Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSpaceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1054]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSpaceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1054]); } /* Ifc4x3_rc1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSpaceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSpaceTypeEnum::IfcSpaceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSpaceTypeEnum::Value Ifc4x3_rc1::IfcSpaceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSpaceTypeEnum::Value) Ifc4x3_rc1::IfcSpaceTypeEnum::IfcSpaceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSpaceTypeEnum::operator Ifc4x3_rc1::IfcSpaceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSpaceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSpatialZoneTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1062]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1062]); } /* Ifc4x3_rc1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSpatialZoneTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value Ifc4x3_rc1::IfcSpatialZoneTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value) Ifc4x3_rc1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSpatialZoneTypeEnum::operator Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStackTerminalTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1071]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStackTerminalTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1071]); } /* Ifc4x3_rc1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcStackTerminalTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value Ifc4x3_rc1::IfcStackTerminalTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value) Ifc4x3_rc1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcStackTerminalTypeEnum::operator Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value() const { return (Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStairFlightTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1075]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStairFlightTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1075]); } /* Ifc4x3_rc1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcStairFlightTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcStairFlightTypeEnum::Value Ifc4x3_rc1::IfcStairFlightTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcStairFlightTypeEnum::Value) Ifc4x3_rc1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcStairFlightTypeEnum::operator Ifc4x3_rc1::IfcStairFlightTypeEnum::Value() const { return (Ifc4x3_rc1::IfcStairFlightTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStairTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1077]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStairTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1077]); } /* Ifc4x3_rc1::IfcStairTypeEnum::IfcStairTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcStairTypeEnum::IfcStairTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcStairTypeEnum::IfcStairTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcStairTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcStairTypeEnum::IfcStairTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcStairTypeEnum::Value Ifc4x3_rc1::IfcStairTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcStairTypeEnum::Value) Ifc4x3_rc1::IfcStairTypeEnum::IfcStairTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcStairTypeEnum::operator Ifc4x3_rc1::IfcStairTypeEnum::Value() const { return (Ifc4x3_rc1::IfcStairTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStateEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1078]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStateEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1078]); } /* Ifc4x3_rc1::IfcStateEnum::IfcStateEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcStateEnum::IfcStateEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcStateEnum::IfcStateEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcStateEnum::ToString(Value v) { return Ifc4x3_rc1::IfcStateEnum::IfcStateEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcStateEnum::Value Ifc4x3_rc1::IfcStateEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcStateEnum::Value) Ifc4x3_rc1::IfcStateEnum::IfcStateEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcStateEnum::operator Ifc4x3_rc1::IfcStateEnum::Value() const { return (Ifc4x3_rc1::IfcStateEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1086]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1086]); } /* Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value) Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::operator Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value() const { return (Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1089]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1089]); } /* Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Value Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Value) Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::operator Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Value() const { return (Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1115]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1115]); } /* Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value) Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::operator Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value() const { return (Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1118]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1118]); } /* Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Value Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Value) Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::operator Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Value() const { return (Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSubContractResourceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1127]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1127]); } /* Ifc4x3_rc1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSubContractResourceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value Ifc4x3_rc1::IfcSubContractResourceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value) Ifc4x3_rc1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSubContractResourceTypeEnum::operator Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1133]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1133]); } /* Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Value Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Value) Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::operator Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSurfaceSide::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1138]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSurfaceSide::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1138]); } /* Ifc4x3_rc1::IfcSurfaceSide::IfcSurfaceSide(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSurfaceSide::IfcSurfaceSide(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSurfaceSide::IfcSurfaceSide(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSurfaceSide::ToString(Value v) { return Ifc4x3_rc1::IfcSurfaceSide::IfcSurfaceSide::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSurfaceSide::Value Ifc4x3_rc1::IfcSurfaceSide::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSurfaceSide::Value) Ifc4x3_rc1::IfcSurfaceSide::IfcSurfaceSide::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSurfaceSide::operator Ifc4x3_rc1::IfcSurfaceSide::Value() const { return (Ifc4x3_rc1::IfcSurfaceSide::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1153]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1153]); } /* Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value) Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::operator Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1157]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1157]); } /* Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value) Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::operator Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTankTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1163]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTankTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1163]); } /* Ifc4x3_rc1::IfcTankTypeEnum::IfcTankTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTankTypeEnum::IfcTankTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTankTypeEnum::IfcTankTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTankTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTankTypeEnum::IfcTankTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTankTypeEnum::Value Ifc4x3_rc1::IfcTankTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTankTypeEnum::Value) Ifc4x3_rc1::IfcTankTypeEnum::IfcTankTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTankTypeEnum::operator Ifc4x3_rc1::IfcTankTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTankTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTaskDurationEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1165]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTaskDurationEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1165]); } /* Ifc4x3_rc1::IfcTaskDurationEnum::IfcTaskDurationEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTaskDurationEnum::IfcTaskDurationEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTaskDurationEnum::IfcTaskDurationEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTaskDurationEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTaskDurationEnum::IfcTaskDurationEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTaskDurationEnum::Value Ifc4x3_rc1::IfcTaskDurationEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTaskDurationEnum::Value) Ifc4x3_rc1::IfcTaskDurationEnum::IfcTaskDurationEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTaskDurationEnum::operator Ifc4x3_rc1::IfcTaskDurationEnum::Value() const { return (Ifc4x3_rc1::IfcTaskDurationEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTaskTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1169]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTaskTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1169]); } /* Ifc4x3_rc1::IfcTaskTypeEnum::IfcTaskTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTaskTypeEnum::IfcTaskTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTaskTypeEnum::IfcTaskTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTaskTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTaskTypeEnum::IfcTaskTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTaskTypeEnum::Value Ifc4x3_rc1::IfcTaskTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTaskTypeEnum::Value) Ifc4x3_rc1::IfcTaskTypeEnum::IfcTaskTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTaskTypeEnum::operator Ifc4x3_rc1::IfcTaskTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTaskTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTendonAnchorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1176]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1176]); } /* Ifc4x3_rc1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTendonAnchorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value Ifc4x3_rc1::IfcTendonAnchorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value) Ifc4x3_rc1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTendonAnchorTypeEnum::operator Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTendonConduitTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1179]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTendonConduitTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1179]); } /* Ifc4x3_rc1::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTendonConduitTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value Ifc4x3_rc1::IfcTendonConduitTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value) Ifc4x3_rc1::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTendonConduitTypeEnum::operator Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTendonTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1181]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTendonTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1181]); } /* Ifc4x3_rc1::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTendonTypeEnum::IfcTendonTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTendonTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTendonTypeEnum::IfcTendonTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTendonTypeEnum::Value Ifc4x3_rc1::IfcTendonTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTendonTypeEnum::Value) Ifc4x3_rc1::IfcTendonTypeEnum::IfcTendonTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTendonTypeEnum::operator Ifc4x3_rc1::IfcTendonTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTendonTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTextPath::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1191]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTextPath::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1191]); } /* Ifc4x3_rc1::IfcTextPath::IfcTextPath(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTextPath::IfcTextPath(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTextPath::IfcTextPath(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTextPath::ToString(Value v) { return Ifc4x3_rc1::IfcTextPath::IfcTextPath::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTextPath::Value Ifc4x3_rc1::IfcTextPath::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTextPath::Value) Ifc4x3_rc1::IfcTextPath::IfcTextPath::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTextPath::operator Ifc4x3_rc1::IfcTextPath::Value() const { return (Ifc4x3_rc1::IfcTextPath::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1213]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1213]); } /* Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value) Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::operator Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTrackElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1222]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTrackElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1222]); } /* Ifc4x3_rc1::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTrackElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTrackElementTypeEnum::Value Ifc4x3_rc1::IfcTrackElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTrackElementTypeEnum::Value) Ifc4x3_rc1::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTrackElementTypeEnum::operator Ifc4x3_rc1::IfcTrackElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTrackElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransformerTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1225]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransformerTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1225]); } /* Ifc4x3_rc1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTransformerTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTransformerTypeEnum::IfcTransformerTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTransformerTypeEnum::Value Ifc4x3_rc1::IfcTransformerTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTransformerTypeEnum::Value) Ifc4x3_rc1::IfcTransformerTypeEnum::IfcTransformerTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTransformerTypeEnum::operator Ifc4x3_rc1::IfcTransformerTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTransformerTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransitionCode::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1226]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransitionCode::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1226]); } /* Ifc4x3_rc1::IfcTransitionCode::IfcTransitionCode(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTransitionCode::IfcTransitionCode(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTransitionCode::IfcTransitionCode(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTransitionCode::ToString(Value v) { return Ifc4x3_rc1::IfcTransitionCode::IfcTransitionCode::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTransitionCode::Value Ifc4x3_rc1::IfcTransitionCode::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTransitionCode::Value) Ifc4x3_rc1::IfcTransitionCode::IfcTransitionCode::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTransitionCode::operator Ifc4x3_rc1::IfcTransitionCode::Value() const { return (Ifc4x3_rc1::IfcTransitionCode::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransitionCurveType::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1228]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransitionCurveType::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1228]); } /* Ifc4x3_rc1::IfcTransitionCurveType::IfcTransitionCurveType(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTransitionCurveType::IfcTransitionCurveType(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTransitionCurveType::IfcTransitionCurveType(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTransitionCurveType::ToString(Value v) { return Ifc4x3_rc1::IfcTransitionCurveType::IfcTransitionCurveType::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTransitionCurveType::Value Ifc4x3_rc1::IfcTransitionCurveType::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTransitionCurveType::Value) Ifc4x3_rc1::IfcTransitionCurveType::IfcTransitionCurveType::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTransitionCurveType::operator Ifc4x3_rc1::IfcTransitionCurveType::Value() const { return (Ifc4x3_rc1::IfcTransitionCurveType::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1231]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1231]); } /* Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::Value Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::Value) Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::operator Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1232]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1232]); } /* Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::Value Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::Value) Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::operator Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTrimmingPreference::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1239]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTrimmingPreference::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1239]); } /* Ifc4x3_rc1::IfcTrimmingPreference::IfcTrimmingPreference(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTrimmingPreference::IfcTrimmingPreference(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTrimmingPreference::IfcTrimmingPreference(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTrimmingPreference::ToString(Value v) { return Ifc4x3_rc1::IfcTrimmingPreference::IfcTrimmingPreference::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTrimmingPreference::Value Ifc4x3_rc1::IfcTrimmingPreference::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTrimmingPreference::Value) Ifc4x3_rc1::IfcTrimmingPreference::IfcTrimmingPreference::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTrimmingPreference::operator Ifc4x3_rc1::IfcTrimmingPreference::Value() const { return (Ifc4x3_rc1::IfcTrimmingPreference::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTubeBundleTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1244]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcTubeBundleTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1244]); } /* Ifc4x3_rc1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcTubeBundleTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value Ifc4x3_rc1::IfcTubeBundleTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value) Ifc4x3_rc1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcTubeBundleTypeEnum::operator Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value() const { return (Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcUnitEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1257]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcUnitEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1257]); } /* Ifc4x3_rc1::IfcUnitEnum::IfcUnitEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcUnitEnum::IfcUnitEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcUnitEnum::IfcUnitEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcUnitEnum::ToString(Value v) { return Ifc4x3_rc1::IfcUnitEnum::IfcUnitEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcUnitEnum::Value Ifc4x3_rc1::IfcUnitEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcUnitEnum::Value) Ifc4x3_rc1::IfcUnitEnum::IfcUnitEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcUnitEnum::operator Ifc4x3_rc1::IfcUnitEnum::Value() const { return (Ifc4x3_rc1::IfcUnitEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1252]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1252]); } /* Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value) Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::operator Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value() const { return (Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1255]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1255]); } /* Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value) Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::operator Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value() const { return (Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcValveTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1263]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcValveTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1263]); } /* Ifc4x3_rc1::IfcValveTypeEnum::IfcValveTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcValveTypeEnum::IfcValveTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcValveTypeEnum::IfcValveTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcValveTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcValveTypeEnum::IfcValveTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcValveTypeEnum::Value Ifc4x3_rc1::IfcValveTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcValveTypeEnum::Value) Ifc4x3_rc1::IfcValveTypeEnum::IfcValveTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcValveTypeEnum::operator Ifc4x3_rc1::IfcValveTypeEnum::Value() const { return (Ifc4x3_rc1::IfcValveTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcVibrationDamperTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1272]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1272]); } /* Ifc4x3_rc1::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcVibrationDamperTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value Ifc4x3_rc1::IfcVibrationDamperTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value) Ifc4x3_rc1::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcVibrationDamperTypeEnum::operator Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value() const { return (Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1275]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1275]); } /* Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value) Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::operator Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value() const { return (Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1279]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1279]); } /* Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Value Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Value) Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::operator Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Value() const { return (Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWallTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1287]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWallTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1287]); } /* Ifc4x3_rc1::IfcWallTypeEnum::IfcWallTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWallTypeEnum::IfcWallTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWallTypeEnum::IfcWallTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWallTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWallTypeEnum::IfcWallTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWallTypeEnum::Value Ifc4x3_rc1::IfcWallTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWallTypeEnum::Value) Ifc4x3_rc1::IfcWallTypeEnum::IfcWallTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWallTypeEnum::operator Ifc4x3_rc1::IfcWallTypeEnum::Value() const { return (Ifc4x3_rc1::IfcWallTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWasteTerminalTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1293]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1293]); } /* Ifc4x3_rc1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWasteTerminalTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value Ifc4x3_rc1::IfcWasteTerminalTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value) Ifc4x3_rc1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWasteTerminalTypeEnum::operator Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value() const { return (Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowPanelOperationEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1297]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowPanelOperationEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1297]); } /* Ifc4x3_rc1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWindowPanelOperationEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWindowPanelOperationEnum::Value Ifc4x3_rc1::IfcWindowPanelOperationEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWindowPanelOperationEnum::Value) Ifc4x3_rc1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWindowPanelOperationEnum::operator Ifc4x3_rc1::IfcWindowPanelOperationEnum::Value() const { return (Ifc4x3_rc1::IfcWindowPanelOperationEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowPanelPositionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1298]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowPanelPositionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1298]); } /* Ifc4x3_rc1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWindowPanelPositionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value Ifc4x3_rc1::IfcWindowPanelPositionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value) Ifc4x3_rc1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWindowPanelPositionEnum::operator Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value() const { return (Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowStyleConstructionEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1302]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1302]); } /* Ifc4x3_rc1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWindowStyleConstructionEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Value Ifc4x3_rc1::IfcWindowStyleConstructionEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Value) Ifc4x3_rc1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWindowStyleConstructionEnum::operator Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Value() const { return (Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowStyleOperationEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1303]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowStyleOperationEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1303]); } /* Ifc4x3_rc1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWindowStyleOperationEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWindowStyleOperationEnum::Value Ifc4x3_rc1::IfcWindowStyleOperationEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWindowStyleOperationEnum::Value) Ifc4x3_rc1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWindowStyleOperationEnum::operator Ifc4x3_rc1::IfcWindowStyleOperationEnum::Value() const { return (Ifc4x3_rc1::IfcWindowStyleOperationEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1305]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1305]); } /* Ifc4x3_rc1::IfcWindowTypeEnum::IfcWindowTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWindowTypeEnum::IfcWindowTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWindowTypeEnum::IfcWindowTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWindowTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWindowTypeEnum::IfcWindowTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWindowTypeEnum::Value Ifc4x3_rc1::IfcWindowTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWindowTypeEnum::Value) Ifc4x3_rc1::IfcWindowTypeEnum::IfcWindowTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWindowTypeEnum::operator Ifc4x3_rc1::IfcWindowTypeEnum::Value() const { return (Ifc4x3_rc1::IfcWindowTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowTypePartitioningEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1306]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1306]); } /* Ifc4x3_rc1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWindowTypePartitioningEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value Ifc4x3_rc1::IfcWindowTypePartitioningEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value) Ifc4x3_rc1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWindowTypePartitioningEnum::operator Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value() const { return (Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWorkCalendarTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1308]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1308]); } /* Ifc4x3_rc1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWorkCalendarTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Value Ifc4x3_rc1::IfcWorkCalendarTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Value) Ifc4x3_rc1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWorkCalendarTypeEnum::operator Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Value() const { return (Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWorkPlanTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1311]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWorkPlanTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1311]); } /* Ifc4x3_rc1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWorkPlanTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWorkPlanTypeEnum::Value Ifc4x3_rc1::IfcWorkPlanTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWorkPlanTypeEnum::Value) Ifc4x3_rc1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWorkPlanTypeEnum::operator Ifc4x3_rc1::IfcWorkPlanTypeEnum::Value() const { return (Ifc4x3_rc1::IfcWorkPlanTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } // const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWorkScheduleTypeEnum::declaration() const { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1313]); } const IfcParse::enumeration_type& Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Class() { return *((IfcParse::enumeration_type*)IFC4X3_RC1_types[1313]); } /* Ifc4x3_rc1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(const std::weak_ptr& e) : express::DeclaredType(e) {} Ifc4x3_rc1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(Value v) { set_attribute_value(0, EnumerationReference(&Class(), static_cast(v))); } Ifc4x3_rc1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(const std::string& v) { set_attribute_value(0, EnumerationReference(&Class(), Class().lookup_enum_offset(v))); } */ const char* Ifc4x3_rc1::IfcWorkScheduleTypeEnum::ToString(Value v) { return Ifc4x3_rc1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum::Class().lookup_enum_value((size_t)v); } Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Value Ifc4x3_rc1::IfcWorkScheduleTypeEnum::FromString(const std::string& s) { return (Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Value) Ifc4x3_rc1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum::Class().lookup_enum_offset(s); } Ifc4x3_rc1::IfcWorkScheduleTypeEnum::operator Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Value() const { return (Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Value) ((EnumerationReference) get_attribute_value(0)).index(); } const IfcParse::select_type& Ifc4x3_rc1::IfcActorSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[8]); } const IfcParse::select_type& Ifc4x3_rc1::IfcAppliedValueSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[54]); } const IfcParse::select_type& Ifc4x3_rc1::IfcAxis2Placement::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[71]); } const IfcParse::select_type& Ifc4x3_rc1::IfcBendingParameterSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[84]); } const IfcParse::select_type& Ifc4x3_rc1::IfcBooleanOperand::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[93]); } const IfcParse::select_type& Ifc4x3_rc1::IfcClassificationReferenceSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[176]); } const IfcParse::select_type& Ifc4x3_rc1::IfcClassificationSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[177]); } const IfcParse::select_type& Ifc4x3_rc1::IfcColour::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[182]); } const IfcParse::select_type& Ifc4x3_rc1::IfcColourOrFactor::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[183]); } const IfcParse::select_type& Ifc4x3_rc1::IfcCoordinateReferenceSystemSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[251]); } const IfcParse::select_type& Ifc4x3_rc1::IfcCsgSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[268]); } const IfcParse::select_type& Ifc4x3_rc1::IfcCurveFontOrScaledCurveFontSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[279]); } const IfcParse::select_type& Ifc4x3_rc1::IfcCurveOnSurface::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[281]); } const IfcParse::select_type& Ifc4x3_rc1::IfcCurveOrEdgeCurve::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[282]); } const IfcParse::select_type& Ifc4x3_rc1::IfcCurveStyleFontSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[288]); } const IfcParse::select_type& Ifc4x3_rc1::IfcDefinitionSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[300]); } const IfcParse::select_type& Ifc4x3_rc1::IfcDerivedMeasureValue::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[301]); } const IfcParse::select_type& Ifc4x3_rc1::IfcDocumentSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[338]); } const IfcParse::select_type& Ifc4x3_rc1::IfcFacilityPartTypeSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[452]); } const IfcParse::select_type& Ifc4x3_rc1::IfcFillStyleSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[467]); } const IfcParse::select_type& Ifc4x3_rc1::IfcGeometricSetSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[518]); } const IfcParse::select_type& Ifc4x3_rc1::IfcGridPlacementDirectionSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[529]); } const IfcParse::select_type& Ifc4x3_rc1::IfcHatchLineDistanceSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[533]); } const IfcParse::select_type& Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[548]); } const IfcParse::select_type& Ifc4x3_rc1::IfcInterferenceSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[562]); } const IfcParse::select_type& Ifc4x3_rc1::IfcLayeredItem::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[588]); } const IfcParse::select_type& Ifc4x3_rc1::IfcLibrarySelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[593]); } const IfcParse::select_type& Ifc4x3_rc1::IfcLightDistributionDataSourceSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[596]); } const IfcParse::select_type& Ifc4x3_rc1::IfcLinearAxisSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[609]); } const IfcParse::select_type& Ifc4x3_rc1::IfcMaterialSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[663]); } const IfcParse::select_type& Ifc4x3_rc1::IfcMeasureValue::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[665]); } const IfcParse::select_type& Ifc4x3_rc1::IfcMetricValueSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[678]); } const IfcParse::select_type& Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[686]); } const IfcParse::select_type& Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[688]); } const IfcParse::select_type& Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[689]); } const IfcParse::select_type& Ifc4x3_rc1::IfcObjectReferenceSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[715]); } const IfcParse::select_type& Ifc4x3_rc1::IfcPointOrVertexPoint::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[781]); } const IfcParse::select_type& Ifc4x3_rc1::IfcPresentationStyleSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[807]); } const IfcParse::select_type& Ifc4x3_rc1::IfcProcessSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[813]); } const IfcParse::select_type& Ifc4x3_rc1::IfcProductRepresentationSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[817]); } const IfcParse::select_type& Ifc4x3_rc1::IfcProductSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[818]); } const IfcParse::select_type& Ifc4x3_rc1::IfcPropertySetDefinitionSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[841]); } const IfcParse::select_type& Ifc4x3_rc1::IfcResourceObjectSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[969]); } const IfcParse::select_type& Ifc4x3_rc1::IfcResourceSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[970]); } const IfcParse::select_type& Ifc4x3_rc1::IfcRotationalStiffnessSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[986]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSegmentIndexSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1002]); } const IfcParse::select_type& Ifc4x3_rc1::IfcShell::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1014]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSimpleValue::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1025]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSizeSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1030]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSolidOrShell::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1042]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSpaceBoundarySelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1049]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSpatialReferenceSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1057]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSpecularHighlightSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1065]); } const IfcParse::select_type& Ifc4x3_rc1::IfcStructuralActivityAssignmentSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1081]); } const IfcParse::select_type& Ifc4x3_rc1::IfcStyleAssignmentSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1121]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSurfaceOrFaceSurface::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1136]); } const IfcParse::select_type& Ifc4x3_rc1::IfcSurfaceStyleElementSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1140]); } const IfcParse::select_type& Ifc4x3_rc1::IfcTextFontSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1188]); } const IfcParse::select_type& Ifc4x3_rc1::IfcTimeOrRatioSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1210]); } const IfcParse::select_type& Ifc4x3_rc1::IfcTranslationalStiffnessSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1229]); } const IfcParse::select_type& Ifc4x3_rc1::IfcTransportElementTypeSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1234]); } const IfcParse::select_type& Ifc4x3_rc1::IfcTrimmingSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1240]); } const IfcParse::select_type& Ifc4x3_rc1::IfcUnit::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1249]); } const IfcParse::select_type& Ifc4x3_rc1::IfcValue::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1260]); } const IfcParse::select_type& Ifc4x3_rc1::IfcVectorOrDirection::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1266]); } const IfcParse::select_type& Ifc4x3_rc1::IfcWarpingStiffnessSelect::Class() { return *((IfcParse::select_type*)IFC4X3_RC1_types[1290]); } // Function implementations for IfcAbsorbedDoseMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcAbsorbedDoseMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[0]); } Ifc4x3_rc1::IfcAbsorbedDoseMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcAccelerationMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcAccelerationMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1]); } Ifc4x3_rc1::IfcAccelerationMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcAmountOfSubstanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcAmountOfSubstanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[45]); } Ifc4x3_rc1::IfcAmountOfSubstanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcAngularVelocityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcAngularVelocityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[48]); } Ifc4x3_rc1::IfcAngularVelocityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcArcIndex const IfcParse::type_declaration& Ifc4x3_rc1::IfcArcIndex::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[60]); } Ifc4x3_rc1::IfcArcIndex::operator std::vector< int > /*[3:3]*/() const { return get_attribute_value(0); } // Function implementations for IfcAreaDensityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcAreaDensityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[61]); } Ifc4x3_rc1::IfcAreaDensityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcAreaMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcAreaMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[62]); } Ifc4x3_rc1::IfcAreaMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcBinary const IfcParse::type_declaration& Ifc4x3_rc1::IfcBinary::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[85]); } Ifc4x3_rc1::IfcBinary::operator boost::dynamic_bitset<>() const { return get_attribute_value(0); } // Function implementations for IfcBoolean const IfcParse::type_declaration& Ifc4x3_rc1::IfcBoolean::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[91]); } Ifc4x3_rc1::IfcBoolean::operator bool() const { return get_attribute_value(0); } // Function implementations for IfcBoxAlignment const IfcParse::type_declaration& Ifc4x3_rc1::IfcBoxAlignment::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[106]); } Ifc4x3_rc1::IfcBoxAlignment::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcCardinalPointReference const IfcParse::type_declaration& Ifc4x3_rc1::IfcCardinalPointReference::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[150]); } Ifc4x3_rc1::IfcCardinalPointReference::operator int() const { return get_attribute_value(0); } // Function implementations for IfcComplexNumber const IfcParse::type_declaration& Ifc4x3_rc1::IfcComplexNumber::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[194]); } Ifc4x3_rc1::IfcComplexNumber::operator std::vector< double > /*[1:2]*/() const { return get_attribute_value(0); } // Function implementations for IfcCompoundPlaneAngleMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcCompoundPlaneAngleMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[202]); } Ifc4x3_rc1::IfcCompoundPlaneAngleMeasure::operator std::vector< int > /*[3:4]*/() const { return get_attribute_value(0); } // Function implementations for IfcContextDependentMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcContextDependentMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[232]); } Ifc4x3_rc1::IfcContextDependentMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcCountMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcCountMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[257]); } Ifc4x3_rc1::IfcCountMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcCurvatureMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcCurvatureMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[275]); } Ifc4x3_rc1::IfcCurvatureMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcDate const IfcParse::type_declaration& Ifc4x3_rc1::IfcDate::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[294]); } Ifc4x3_rc1::IfcDate::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcDateTime const IfcParse::type_declaration& Ifc4x3_rc1::IfcDateTime::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[295]); } Ifc4x3_rc1::IfcDateTime::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcDayInMonthNumber const IfcParse::type_declaration& Ifc4x3_rc1::IfcDayInMonthNumber::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[296]); } Ifc4x3_rc1::IfcDayInMonthNumber::operator int() const { return get_attribute_value(0); } // Function implementations for IfcDayInWeekNumber const IfcParse::type_declaration& Ifc4x3_rc1::IfcDayInWeekNumber::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[297]); } Ifc4x3_rc1::IfcDayInWeekNumber::operator int() const { return get_attribute_value(0); } // Function implementations for IfcDescriptiveMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcDescriptiveMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[306]); } Ifc4x3_rc1::IfcDescriptiveMeasure::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcDimensionCount const IfcParse::type_declaration& Ifc4x3_rc1::IfcDimensionCount::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[308]); } Ifc4x3_rc1::IfcDimensionCount::operator int() const { return get_attribute_value(0); } // Function implementations for IfcDoseEquivalentMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcDoseEquivalentMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[352]); } Ifc4x3_rc1::IfcDoseEquivalentMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcDuration const IfcParse::type_declaration& Ifc4x3_rc1::IfcDuration::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[364]); } Ifc4x3_rc1::IfcDuration::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcDynamicViscosityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcDynamicViscosityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[365]); } Ifc4x3_rc1::IfcDynamicViscosityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcElectricCapacitanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcElectricCapacitanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[377]); } Ifc4x3_rc1::IfcElectricCapacitanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcElectricChargeMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcElectricChargeMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[378]); } Ifc4x3_rc1::IfcElectricChargeMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcElectricConductanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcElectricConductanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[379]); } Ifc4x3_rc1::IfcElectricConductanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcElectricCurrentMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcElectricCurrentMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[380]); } Ifc4x3_rc1::IfcElectricCurrentMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcElectricResistanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcElectricResistanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[396]); } Ifc4x3_rc1::IfcElectricResistanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcElectricVoltageMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcElectricVoltageMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[400]); } Ifc4x3_rc1::IfcElectricVoltageMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcEnergyMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcEnergyMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[415]); } Ifc4x3_rc1::IfcEnergyMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcFontStyle const IfcParse::type_declaration& Ifc4x3_rc1::IfcFontStyle::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[496]); } Ifc4x3_rc1::IfcFontStyle::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcFontVariant const IfcParse::type_declaration& Ifc4x3_rc1::IfcFontVariant::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[497]); } Ifc4x3_rc1::IfcFontVariant::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcFontWeight const IfcParse::type_declaration& Ifc4x3_rc1::IfcFontWeight::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[498]); } Ifc4x3_rc1::IfcFontWeight::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcForceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcForceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[502]); } Ifc4x3_rc1::IfcForceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcFrequencyMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcFrequencyMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[503]); } Ifc4x3_rc1::IfcFrequencyMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcGloballyUniqueId const IfcParse::type_declaration& Ifc4x3_rc1::IfcGloballyUniqueId::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[524]); } Ifc4x3_rc1::IfcGloballyUniqueId::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcHeatFluxDensityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcHeatFluxDensityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[537]); } Ifc4x3_rc1::IfcHeatFluxDensityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcHeatingValueMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcHeatingValueMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[538]); } Ifc4x3_rc1::IfcHeatingValueMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcIdentifier const IfcParse::type_declaration& Ifc4x3_rc1::IfcIdentifier::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[542]); } Ifc4x3_rc1::IfcIdentifier::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcIlluminanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcIlluminanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[543]); } Ifc4x3_rc1::IfcIlluminanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcInductanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcInductanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[556]); } Ifc4x3_rc1::IfcInductanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcInteger const IfcParse::type_declaration& Ifc4x3_rc1::IfcInteger::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[557]); } Ifc4x3_rc1::IfcInteger::operator int() const { return get_attribute_value(0); } // Function implementations for IfcIntegerCountRateMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcIntegerCountRateMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[558]); } Ifc4x3_rc1::IfcIntegerCountRateMeasure::operator int() const { return get_attribute_value(0); } // Function implementations for IfcIonConcentrationMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcIonConcentrationMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[567]); } Ifc4x3_rc1::IfcIonConcentrationMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcIsothermalMoistureCapacityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcIsothermalMoistureCapacityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[571]); } Ifc4x3_rc1::IfcIsothermalMoistureCapacityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcKinematicViscosityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcKinematicViscosityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[577]); } Ifc4x3_rc1::IfcKinematicViscosityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcLabel const IfcParse::type_declaration& Ifc4x3_rc1::IfcLabel::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[579]); } Ifc4x3_rc1::IfcLabel::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcLanguageId const IfcParse::type_declaration& Ifc4x3_rc1::IfcLanguageId::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[587]); } Ifc4x3_rc1::IfcLanguageId::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcLengthMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcLengthMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[590]); } Ifc4x3_rc1::IfcLengthMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcLineIndex const IfcParse::type_declaration& Ifc4x3_rc1::IfcLineIndex::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[619]); } Ifc4x3_rc1::IfcLineIndex::operator std::vector< int > /*[2:?]*/() const { return get_attribute_value(0); } // Function implementations for IfcLinearForceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcLinearForceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[611]); } Ifc4x3_rc1::IfcLinearForceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcLinearMomentMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcLinearMomentMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[612]); } Ifc4x3_rc1::IfcLinearMomentMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcLinearStiffnessMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcLinearStiffnessMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[617]); } Ifc4x3_rc1::IfcLinearStiffnessMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcLinearVelocityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcLinearVelocityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[618]); } Ifc4x3_rc1::IfcLinearVelocityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcLogical const IfcParse::type_declaration& Ifc4x3_rc1::IfcLogical::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[626]); } Ifc4x3_rc1::IfcLogical::operator boost::logic::tribool() const { return get_attribute_value(0); } // Function implementations for IfcLuminousFluxMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcLuminousFluxMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[630]); } Ifc4x3_rc1::IfcLuminousFluxMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcLuminousIntensityDistributionMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcLuminousIntensityDistributionMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[631]); } Ifc4x3_rc1::IfcLuminousIntensityDistributionMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcLuminousIntensityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcLuminousIntensityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[632]); } Ifc4x3_rc1::IfcLuminousIntensityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMagneticFluxDensityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMagneticFluxDensityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[633]); } Ifc4x3_rc1::IfcMagneticFluxDensityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMagneticFluxMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMagneticFluxMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[634]); } Ifc4x3_rc1::IfcMagneticFluxMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMassDensityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMassDensityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[641]); } Ifc4x3_rc1::IfcMassDensityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMassFlowRateMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMassFlowRateMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[642]); } Ifc4x3_rc1::IfcMassFlowRateMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMassMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMassMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[643]); } Ifc4x3_rc1::IfcMassMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMassPerLengthMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMassPerLengthMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[644]); } Ifc4x3_rc1::IfcMassPerLengthMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcModulusOfElasticityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcModulusOfElasticityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[683]); } Ifc4x3_rc1::IfcModulusOfElasticityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcModulusOfLinearSubgradeReactionMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcModulusOfLinearSubgradeReactionMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[684]); } Ifc4x3_rc1::IfcModulusOfLinearSubgradeReactionMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcModulusOfRotationalSubgradeReactionMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[685]); } Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcModulusOfSubgradeReactionMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcModulusOfSubgradeReactionMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[687]); } Ifc4x3_rc1::IfcModulusOfSubgradeReactionMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMoistureDiffusivityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMoistureDiffusivityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[690]); } Ifc4x3_rc1::IfcMoistureDiffusivityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMolecularWeightMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMolecularWeightMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[691]); } Ifc4x3_rc1::IfcMolecularWeightMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMomentOfInertiaMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMomentOfInertiaMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[692]); } Ifc4x3_rc1::IfcMomentOfInertiaMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMonetaryMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcMonetaryMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[693]); } Ifc4x3_rc1::IfcMonetaryMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcMonthInYearNumber const IfcParse::type_declaration& Ifc4x3_rc1::IfcMonthInYearNumber::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[695]); } Ifc4x3_rc1::IfcMonthInYearNumber::operator int() const { return get_attribute_value(0); } // Function implementations for IfcNonNegativeLengthMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcNonNegativeLengthMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[706]); } Ifc4x3_rc1::IfcNonNegativeLengthMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcNormalisedRatioMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcNormalisedRatioMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[707]); } Ifc4x3_rc1::IfcNormalisedRatioMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcNumericMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcNumericMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[709]); } Ifc4x3_rc1::IfcNumericMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPHMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcPHMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[751]); } Ifc4x3_rc1::IfcPHMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcParameterValue const IfcParse::type_declaration& Ifc4x3_rc1::IfcParameterValue::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[738]); } Ifc4x3_rc1::IfcParameterValue::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPlanarForceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcPlanarForceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[770]); } Ifc4x3_rc1::IfcPlanarForceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPlaneAngleMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcPlaneAngleMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[772]); } Ifc4x3_rc1::IfcPlaneAngleMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPositiveInteger const IfcParse::type_declaration& Ifc4x3_rc1::IfcPositiveInteger::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[788]); } Ifc4x3_rc1::IfcPositiveInteger::operator int() const { return get_attribute_value(0); } // Function implementations for IfcPositiveLengthMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcPositiveLengthMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[789]); } Ifc4x3_rc1::IfcPositiveLengthMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPositivePlaneAngleMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcPositivePlaneAngleMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[790]); } Ifc4x3_rc1::IfcPositivePlaneAngleMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPositiveRatioMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcPositiveRatioMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[791]); } Ifc4x3_rc1::IfcPositiveRatioMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPowerMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcPowerMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[793]); } Ifc4x3_rc1::IfcPowerMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPresentableText const IfcParse::type_declaration& Ifc4x3_rc1::IfcPresentableText::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[801]); } Ifc4x3_rc1::IfcPresentableText::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcPressureMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcPressureMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[808]); } Ifc4x3_rc1::IfcPressureMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcPropertySetDefinitionSet const IfcParse::type_declaration& Ifc4x3_rc1::IfcPropertySetDefinitionSet::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[842]); } Ifc4x3_rc1::IfcPropertySetDefinitionSet::operator std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition >() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcPropertySetDefinition>(es); } // Function implementations for IfcRadioActivityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcRadioActivityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[866]); } Ifc4x3_rc1::IfcRadioActivityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcRatioMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcRatioMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[881]); } Ifc4x3_rc1::IfcRatioMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcReal const IfcParse::type_declaration& Ifc4x3_rc1::IfcReal::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[884]); } Ifc4x3_rc1::IfcReal::operator double() const { return get_attribute_value(0); } // Function implementations for IfcRotationalFrequencyMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcRotationalFrequencyMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[983]); } Ifc4x3_rc1::IfcRotationalFrequencyMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcRotationalMassMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcRotationalMassMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[984]); } Ifc4x3_rc1::IfcRotationalMassMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcRotationalStiffnessMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcRotationalStiffnessMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[985]); } Ifc4x3_rc1::IfcRotationalStiffnessMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSectionModulusMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcSectionModulusMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[998]); } Ifc4x3_rc1::IfcSectionModulusMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSectionalAreaIntegralMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcSectionalAreaIntegralMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[993]); } Ifc4x3_rc1::IfcSectionalAreaIntegralMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcShearModulusMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcShearModulusMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1013]); } Ifc4x3_rc1::IfcShearModulusMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSolidAngleMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcSolidAngleMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1040]); } Ifc4x3_rc1::IfcSolidAngleMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSoundPowerLevelMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcSoundPowerLevelMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1044]); } Ifc4x3_rc1::IfcSoundPowerLevelMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSoundPowerMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcSoundPowerMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1045]); } Ifc4x3_rc1::IfcSoundPowerMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSoundPressureLevelMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcSoundPressureLevelMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1046]); } Ifc4x3_rc1::IfcSoundPressureLevelMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSoundPressureMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcSoundPressureMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1047]); } Ifc4x3_rc1::IfcSoundPressureMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSpecificHeatCapacityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcSpecificHeatCapacityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1063]); } Ifc4x3_rc1::IfcSpecificHeatCapacityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSpecularExponent const IfcParse::type_declaration& Ifc4x3_rc1::IfcSpecularExponent::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1064]); } Ifc4x3_rc1::IfcSpecularExponent::operator double() const { return get_attribute_value(0); } // Function implementations for IfcSpecularRoughness const IfcParse::type_declaration& Ifc4x3_rc1::IfcSpecularRoughness::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1066]); } Ifc4x3_rc1::IfcSpecularRoughness::operator double() const { return get_attribute_value(0); } // Function implementations for IfcTemperatureGradientMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcTemperatureGradientMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1171]); } Ifc4x3_rc1::IfcTemperatureGradientMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcTemperatureRateOfChangeMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcTemperatureRateOfChangeMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1172]); } Ifc4x3_rc1::IfcTemperatureRateOfChangeMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcText const IfcParse::type_declaration& Ifc4x3_rc1::IfcText::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1184]); } Ifc4x3_rc1::IfcText::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcTextAlignment const IfcParse::type_declaration& Ifc4x3_rc1::IfcTextAlignment::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1185]); } Ifc4x3_rc1::IfcTextAlignment::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcTextDecoration const IfcParse::type_declaration& Ifc4x3_rc1::IfcTextDecoration::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1186]); } Ifc4x3_rc1::IfcTextDecoration::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcTextFontName const IfcParse::type_declaration& Ifc4x3_rc1::IfcTextFontName::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1187]); } Ifc4x3_rc1::IfcTextFontName::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcTextTransformation const IfcParse::type_declaration& Ifc4x3_rc1::IfcTextTransformation::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1196]); } Ifc4x3_rc1::IfcTextTransformation::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcThermalAdmittanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcThermalAdmittanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1202]); } Ifc4x3_rc1::IfcThermalAdmittanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcThermalConductivityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcThermalConductivityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1203]); } Ifc4x3_rc1::IfcThermalConductivityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcThermalExpansionCoefficientMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcThermalExpansionCoefficientMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1204]); } Ifc4x3_rc1::IfcThermalExpansionCoefficientMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcThermalResistanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcThermalResistanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1205]); } Ifc4x3_rc1::IfcThermalResistanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcThermalTransmittanceMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcThermalTransmittanceMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1206]); } Ifc4x3_rc1::IfcThermalTransmittanceMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcThermodynamicTemperatureMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcThermodynamicTemperatureMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1207]); } Ifc4x3_rc1::IfcThermodynamicTemperatureMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcTime const IfcParse::type_declaration& Ifc4x3_rc1::IfcTime::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1208]); } Ifc4x3_rc1::IfcTime::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcTimeMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcTimeMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1209]); } Ifc4x3_rc1::IfcTimeMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcTimeStamp const IfcParse::type_declaration& Ifc4x3_rc1::IfcTimeStamp::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1215]); } Ifc4x3_rc1::IfcTimeStamp::operator int() const { return get_attribute_value(0); } // Function implementations for IfcTorqueMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcTorqueMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1219]); } Ifc4x3_rc1::IfcTorqueMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcURIReference const IfcParse::type_declaration& Ifc4x3_rc1::IfcURIReference::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1258]); } Ifc4x3_rc1::IfcURIReference::operator std::string() const { return get_attribute_value(0); } // Function implementations for IfcVaporPermeabilityMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcVaporPermeabilityMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1264]); } Ifc4x3_rc1::IfcVaporPermeabilityMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcVolumeMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcVolumeMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1281]); } Ifc4x3_rc1::IfcVolumeMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcVolumetricFlowRateMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcVolumetricFlowRateMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1282]); } Ifc4x3_rc1::IfcVolumetricFlowRateMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcWarpingConstantMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcWarpingConstantMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1288]); } Ifc4x3_rc1::IfcWarpingConstantMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcWarpingMomentMeasure const IfcParse::type_declaration& Ifc4x3_rc1::IfcWarpingMomentMeasure::Class() { return *((IfcParse::type_declaration*)IFC4X3_RC1_types[1289]); } Ifc4x3_rc1::IfcWarpingMomentMeasure::operator double() const { return get_attribute_value(0); } // Function implementations for IfcActionRequest std::optional< ::Ifc4x3_rc1::IfcActionRequestTypeEnum::Value > Ifc4x3_rc1::IfcActionRequest::PredefinedType() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcActionRequestTypeEnum::FromString(get_attribute_value(6)); } void Ifc4x3_rc1::IfcActionRequest::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcActionRequestTypeEnum::Value >& v) { if (v) {set_attribute_value(6, EnumerationReference(&::Ifc4x3_rc1::IfcActionRequestTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcActionRequest::Status() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcActionRequest::setStatus(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcActionRequest::LongDescription() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcActionRequest::setLongDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcActionRequest::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[2]); } const IfcParse::entity& Ifc4x3_rc1::IfcActionRequest::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[2]); } // Ifc4x3_rc1::IfcActionRequest::IfcActionRequest(const std::weak_ptr& e) : IfcControl(e) { } // Ifc4x3_rc1::IfcActionRequest::IfcActionRequest(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< ::Ifc4x3_rc1::IfcActionRequestTypeEnum::Value > v7_PredefinedType, std::optional< std::string > v8_Status, std::optional< std::string > v9_LongDescription) : IfcControl(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_PredefinedType) {set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcActionRequestTypeEnum::Class(),(size_t)*v7_PredefinedType))); } if (v8_Status) {set_attribute_value(7, (*v8_Status)); } if (v9_LongDescription) {set_attribute_value(8, (*v9_LongDescription)); }; populate_derived(); } // Function implementations for IfcActor ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcActor::TheActor() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcActor::setTheActor(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } std::vector<::Ifc4x3_rc1::IfcRelAssignsToActor> Ifc4x3_rc1::IfcActor::IsActingUpon() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[912], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcActor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[6]); } const IfcParse::entity& Ifc4x3_rc1::IfcActor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[6]); } // Ifc4x3_rc1::IfcActor::IfcActor(const std::weak_ptr& e) : IfcObject(e) { } // Ifc4x3_rc1::IfcActor::IfcActor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcActorSelect v6_TheActor) : IfcObject(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }set_attribute_value(5, (v6_TheActor));; populate_derived(); } // Function implementations for IfcActorRole ::Ifc4x3_rc1::IfcRoleEnum::Value Ifc4x3_rc1::IfcActorRole::Role() const { return ::Ifc4x3_rc1::IfcRoleEnum::FromString(get_attribute_value(0)); } void Ifc4x3_rc1::IfcActorRole::setRole(const ::Ifc4x3_rc1::IfcRoleEnum::Value& v) { set_attribute_value(0, EnumerationReference(&::Ifc4x3_rc1::IfcRoleEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcActorRole::UserDefinedRole() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcActorRole::setUserDefinedRole(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcActorRole::Description() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcActorRole::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcActorRole::HasExternalReference() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcActorRole::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[7]); } const IfcParse::entity& Ifc4x3_rc1::IfcActorRole::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[7]); } // Ifc4x3_rc1::IfcActorRole::IfcActorRole(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcActorRole::IfcActorRole(::Ifc4x3_rc1::IfcRoleEnum::Value v1_Role, std::optional< std::string > v2_UserDefinedRole, std::optional< std::string > v3_Description) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcRoleEnum::Class(),(size_t)v1_Role))); if (v2_UserDefinedRole) {set_attribute_value(1, (*v2_UserDefinedRole)); } if (v3_Description) {set_attribute_value(2, (*v3_Description)); }; populate_derived(); } // Function implementations for IfcActuator std::optional< ::Ifc4x3_rc1::IfcActuatorTypeEnum::Value > Ifc4x3_rc1::IfcActuator::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcActuatorTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcActuator::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcActuatorTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcActuatorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcActuator::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[9]); } const IfcParse::entity& Ifc4x3_rc1::IfcActuator::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[9]); } // Ifc4x3_rc1::IfcActuator::IfcActuator(const std::weak_ptr& e) : IfcDistributionControlElement(e) { } // Ifc4x3_rc1::IfcActuator::IfcActuator(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcActuatorTypeEnum::Value > v9_PredefinedType) : IfcDistributionControlElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcActuatorTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcActuatorType ::Ifc4x3_rc1::IfcActuatorTypeEnum::Value Ifc4x3_rc1::IfcActuatorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcActuatorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcActuatorType::setPredefinedType(const ::Ifc4x3_rc1::IfcActuatorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcActuatorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcActuatorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[10]); } const IfcParse::entity& Ifc4x3_rc1::IfcActuatorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[10]); } // Ifc4x3_rc1::IfcActuatorType::IfcActuatorType(const std::weak_ptr& e) : IfcDistributionControlElementType(e) { } // Ifc4x3_rc1::IfcActuatorType::IfcActuatorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcActuatorTypeEnum::Value v10_PredefinedType) : IfcDistributionControlElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcActuatorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcAddress std::optional< ::Ifc4x3_rc1::IfcAddressTypeEnum::Value > Ifc4x3_rc1::IfcAddress::Purpose() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAddressTypeEnum::FromString(get_attribute_value(0)); } void Ifc4x3_rc1::IfcAddress::setPurpose(const std::optional< ::Ifc4x3_rc1::IfcAddressTypeEnum::Value >& v) { if (v) {set_attribute_value(0, EnumerationReference(&::Ifc4x3_rc1::IfcAddressTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcAddress::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcAddress::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcAddress::UserDefinedPurpose() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcAddress::setUserDefinedPurpose(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::vector<::Ifc4x3_rc1::IfcPerson> Ifc4x3_rc1::IfcAddress::OfPerson() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[749], 7)); } std::vector<::Ifc4x3_rc1::IfcOrganization> Ifc4x3_rc1::IfcAddress::OfOrganization() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[728], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAddress::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[12]); } const IfcParse::entity& Ifc4x3_rc1::IfcAddress::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[12]); } // Ifc4x3_rc1::IfcAddress::IfcAddress(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcAddress::IfcAddress(std::optional< ::Ifc4x3_rc1::IfcAddressTypeEnum::Value > v1_Purpose, std::optional< std::string > v2_Description, std::optional< std::string > v3_UserDefinedPurpose) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Purpose) {set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcAddressTypeEnum::Class(),(size_t)*v1_Purpose))); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_UserDefinedPurpose) {set_attribute_value(2, (*v3_UserDefinedPurpose)); }; populate_derived(); } // Function implementations for IfcAdvancedBrep // const IfcParse::entity& Ifc4x3_rc1::IfcAdvancedBrep::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[14]); } const IfcParse::entity& Ifc4x3_rc1::IfcAdvancedBrep::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[14]); } // Ifc4x3_rc1::IfcAdvancedBrep::IfcAdvancedBrep(const std::weak_ptr& e) : IfcManifoldSolidBrep(e) { } // Ifc4x3_rc1::IfcAdvancedBrep::IfcAdvancedBrep(::Ifc4x3_rc1::IfcClosedShell v1_Outer) : IfcManifoldSolidBrep(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Outer));; populate_derived(); } // Function implementations for IfcAdvancedBrepWithVoids std::vector< ::Ifc4x3_rc1::IfcClosedShell > Ifc4x3_rc1::IfcAdvancedBrepWithVoids::Voids() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcClosedShell>(es); } void Ifc4x3_rc1::IfcAdvancedBrepWithVoids::setVoids(const std::vector< ::Ifc4x3_rc1::IfcClosedShell >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcAdvancedBrepWithVoids::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[15]); } const IfcParse::entity& Ifc4x3_rc1::IfcAdvancedBrepWithVoids::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[15]); } // Ifc4x3_rc1::IfcAdvancedBrepWithVoids::IfcAdvancedBrepWithVoids(const std::weak_ptr& e) : IfcAdvancedBrep(e) { } // Ifc4x3_rc1::IfcAdvancedBrepWithVoids::IfcAdvancedBrepWithVoids(::Ifc4x3_rc1::IfcClosedShell v1_Outer, std::vector< ::Ifc4x3_rc1::IfcClosedShell > v2_Voids) : IfcAdvancedBrep(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Outer));set_attribute_value(1, (v2_Voids)->generalize());; populate_derived(); } // Function implementations for IfcAdvancedFace // const IfcParse::entity& Ifc4x3_rc1::IfcAdvancedFace::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[16]); } const IfcParse::entity& Ifc4x3_rc1::IfcAdvancedFace::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[16]); } // Ifc4x3_rc1::IfcAdvancedFace::IfcAdvancedFace(const std::weak_ptr& e) : IfcFaceSurface(e) { } // Ifc4x3_rc1::IfcAdvancedFace::IfcAdvancedFace(std::vector< ::Ifc4x3_rc1::IfcFaceBound > v1_Bounds, ::Ifc4x3_rc1::IfcSurface v2_FaceSurface, bool v3_SameSense) : IfcFaceSurface(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Bounds)->generalize());set_attribute_value(1, (v2_FaceSurface));set_attribute_value(2, (v3_SameSense));; populate_derived(); } // Function implementations for IfcAirTerminal std::optional< ::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value > Ifc4x3_rc1::IfcAirTerminal::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAirTerminalTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcAirTerminal::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAirTerminal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[17]); } const IfcParse::entity& Ifc4x3_rc1::IfcAirTerminal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[17]); } // Ifc4x3_rc1::IfcAirTerminal::IfcAirTerminal(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcAirTerminal::IfcAirTerminal(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcAirTerminalBox std::optional< ::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value > Ifc4x3_rc1::IfcAirTerminalBox::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcAirTerminalBox::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAirTerminalBox::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[18]); } const IfcParse::entity& Ifc4x3_rc1::IfcAirTerminalBox::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[18]); } // Ifc4x3_rc1::IfcAirTerminalBox::IfcAirTerminalBox(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcAirTerminalBox::IfcAirTerminalBox(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcAirTerminalBoxType ::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value Ifc4x3_rc1::IfcAirTerminalBoxType::PredefinedType() const { return ::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcAirTerminalBoxType::setPredefinedType(const ::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcAirTerminalBoxType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[19]); } const IfcParse::entity& Ifc4x3_rc1::IfcAirTerminalBoxType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[19]); } // Ifc4x3_rc1::IfcAirTerminalBoxType::IfcAirTerminalBoxType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcAirTerminalBoxType::IfcAirTerminalBoxType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcAirTerminalType ::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value Ifc4x3_rc1::IfcAirTerminalType::PredefinedType() const { return ::Ifc4x3_rc1::IfcAirTerminalTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcAirTerminalType::setPredefinedType(const ::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcAirTerminalType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[21]); } const IfcParse::entity& Ifc4x3_rc1::IfcAirTerminalType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[21]); } // Ifc4x3_rc1::IfcAirTerminalType::IfcAirTerminalType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcAirTerminalType::IfcAirTerminalType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcAirTerminalTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcAirToAirHeatRecovery std::optional< ::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value > Ifc4x3_rc1::IfcAirToAirHeatRecovery::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcAirToAirHeatRecovery::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAirToAirHeatRecovery::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[23]); } const IfcParse::entity& Ifc4x3_rc1::IfcAirToAirHeatRecovery::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[23]); } // Ifc4x3_rc1::IfcAirToAirHeatRecovery::IfcAirToAirHeatRecovery(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcAirToAirHeatRecovery::IfcAirToAirHeatRecovery(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcAirToAirHeatRecoveryType ::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value Ifc4x3_rc1::IfcAirToAirHeatRecoveryType::PredefinedType() const { return ::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcAirToAirHeatRecoveryType::setPredefinedType(const ::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcAirToAirHeatRecoveryType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[24]); } const IfcParse::entity& Ifc4x3_rc1::IfcAirToAirHeatRecoveryType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[24]); } // Ifc4x3_rc1::IfcAirToAirHeatRecoveryType::IfcAirToAirHeatRecoveryType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcAirToAirHeatRecoveryType::IfcAirToAirHeatRecoveryType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcAlarm std::optional< ::Ifc4x3_rc1::IfcAlarmTypeEnum::Value > Ifc4x3_rc1::IfcAlarm::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAlarmTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcAlarm::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcAlarmTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcAlarmTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAlarm::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[26]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlarm::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[26]); } // Ifc4x3_rc1::IfcAlarm::IfcAlarm(const std::weak_ptr& e) : IfcDistributionControlElement(e) { } // Ifc4x3_rc1::IfcAlarm::IfcAlarm(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcAlarmTypeEnum::Value > v9_PredefinedType) : IfcDistributionControlElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcAlarmTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcAlarmType ::Ifc4x3_rc1::IfcAlarmTypeEnum::Value Ifc4x3_rc1::IfcAlarmType::PredefinedType() const { return ::Ifc4x3_rc1::IfcAlarmTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcAlarmType::setPredefinedType(const ::Ifc4x3_rc1::IfcAlarmTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcAlarmTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlarmType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[27]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlarmType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[27]); } // Ifc4x3_rc1::IfcAlarmType::IfcAlarmType(const std::weak_ptr& e) : IfcDistributionControlElementType(e) { } // Ifc4x3_rc1::IfcAlarmType::IfcAlarmType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcAlarmTypeEnum::Value v10_PredefinedType) : IfcDistributionControlElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcAlarmTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcAlignment std::optional< ::Ifc4x3_rc1::IfcAlignmentTypeEnum::Value > Ifc4x3_rc1::IfcAlignment::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAlignmentTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcAlignment::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcAlignmentTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcAlignmentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[29]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[29]); } // Ifc4x3_rc1::IfcAlignment::IfcAlignment(const std::weak_ptr& e) : IfcLinearPositioningElement(e) { } // Ifc4x3_rc1::IfcAlignment::IfcAlignment(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcCurve v8_Axis, std::optional< ::Ifc4x3_rc1::IfcAlignmentTypeEnum::Value > v9_PredefinedType) : IfcLinearPositioningElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_Axis)); if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcAlignmentTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcAlignment2DCant std::vector< ::Ifc4x3_rc1::IfcAlignment2DCantSegment > Ifc4x3_rc1::IfcAlignment2DCant::Segments() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcAlignment2DCantSegment>(es); } void Ifc4x3_rc1::IfcAlignment2DCant::setSegments(const std::vector< ::Ifc4x3_rc1::IfcAlignment2DCantSegment >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcAlignment2DCant::RailHeadDistance() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcAlignment2DCant::setRailHeadDistance(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DCant::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[30]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DCant::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[30]); } // Ifc4x3_rc1::IfcAlignment2DCant::IfcAlignment2DCant(const std::weak_ptr& e) : IfcAxisLateralInclination(e) { } // Ifc4x3_rc1::IfcAlignment2DCant::IfcAlignment2DCant(std::vector< ::Ifc4x3_rc1::IfcAlignment2DCantSegment > v1_Segments, double v2_RailHeadDistance) : IfcAxisLateralInclination(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Segments)->generalize());set_attribute_value(1, (v2_RailHeadDistance));; populate_derived(); } // Function implementations for IfcAlignment2DCantSegLine // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DCantSegLine::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[31]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DCantSegLine::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[31]); } // Ifc4x3_rc1::IfcAlignment2DCantSegLine::IfcAlignment2DCantSegLine(const std::weak_ptr& e) : IfcAlignment2DCantSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DCantSegLine::IfcAlignment2DCantSegLine(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, double v4_StartDistAlong, double v5_HorizontalLength, double v6_StartCantLeft, std::optional< double > v7_EndCantLeft, double v8_StartCantRight, std::optional< double > v9_EndCantRight) : IfcAlignment2DCantSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_StartDistAlong));set_attribute_value(4, (v5_HorizontalLength));set_attribute_value(5, (v6_StartCantLeft)); if (v7_EndCantLeft) {set_attribute_value(6, (*v7_EndCantLeft)); }set_attribute_value(7, (v8_StartCantRight)); if (v9_EndCantRight) {set_attribute_value(8, (*v9_EndCantRight)); }; populate_derived(); } // Function implementations for IfcAlignment2DCantSegTransition std::optional< double > Ifc4x3_rc1::IfcAlignment2DCantSegTransition::StartRadius() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegTransition::setStartRadius(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcAlignment2DCantSegTransition::EndRadius() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegTransition::setEndRadius(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } bool Ifc4x3_rc1::IfcAlignment2DCantSegTransition::IsStartRadiusCCW() const { bool v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegTransition::setIsStartRadiusCCW(const bool& v) { set_attribute_value(11, v);if constexpr (false)unset_attribute_value(11); } bool Ifc4x3_rc1::IfcAlignment2DCantSegTransition::IsEndRadiusCCW() const { bool v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegTransition::setIsEndRadiusCCW(const bool& v) { set_attribute_value(12, v);if constexpr (false)unset_attribute_value(12); } ::Ifc4x3_rc1::IfcTransitionCurveType::Value Ifc4x3_rc1::IfcAlignment2DCantSegTransition::TransitionCurveType() const { return ::Ifc4x3_rc1::IfcTransitionCurveType::FromString(get_attribute_value(13)); } void Ifc4x3_rc1::IfcAlignment2DCantSegTransition::setTransitionCurveType(const ::Ifc4x3_rc1::IfcTransitionCurveType::Value& v) { set_attribute_value(13, EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCurveType::Class(), (size_t) v));if constexpr (false)unset_attribute_value(13); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DCantSegTransition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[33]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DCantSegTransition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[33]); } // Ifc4x3_rc1::IfcAlignment2DCantSegTransition::IfcAlignment2DCantSegTransition(const std::weak_ptr& e) : IfcAlignment2DCantSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DCantSegTransition::IfcAlignment2DCantSegTransition(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, double v4_StartDistAlong, double v5_HorizontalLength, double v6_StartCantLeft, std::optional< double > v7_EndCantLeft, double v8_StartCantRight, std::optional< double > v9_EndCantRight, std::optional< double > v10_StartRadius, std::optional< double > v11_EndRadius, bool v12_IsStartRadiusCCW, bool v13_IsEndRadiusCCW, ::Ifc4x3_rc1::IfcTransitionCurveType::Value v14_TransitionCurveType) : IfcAlignment2DCantSegment(const std::weak_ptr&(in_memory_attribute_storage(14))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_StartDistAlong));set_attribute_value(4, (v5_HorizontalLength));set_attribute_value(5, (v6_StartCantLeft)); if (v7_EndCantLeft) {set_attribute_value(6, (*v7_EndCantLeft)); }set_attribute_value(7, (v8_StartCantRight)); if (v9_EndCantRight) {set_attribute_value(8, (*v9_EndCantRight)); } if (v10_StartRadius) {set_attribute_value(9, (*v10_StartRadius)); } if (v11_EndRadius) {set_attribute_value(10, (*v11_EndRadius)); }set_attribute_value(11, (v12_IsStartRadiusCCW));set_attribute_value(12, (v13_IsEndRadiusCCW));set_attribute_value(13, (EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCurveType::Class(),(size_t)v14_TransitionCurveType)));; populate_derived(); } // Function implementations for IfcAlignment2DCantSegment double Ifc4x3_rc1::IfcAlignment2DCantSegment::StartDistAlong() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegment::setStartDistAlong(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcAlignment2DCantSegment::HorizontalLength() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegment::setHorizontalLength(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcAlignment2DCantSegment::StartCantLeft() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegment::setStartCantLeft(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } std::optional< double > Ifc4x3_rc1::IfcAlignment2DCantSegment::EndCantLeft() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegment::setEndCantLeft(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } double Ifc4x3_rc1::IfcAlignment2DCantSegment::StartCantRight() const { double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegment::setStartCantRight(const double& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::optional< double > Ifc4x3_rc1::IfcAlignment2DCantSegment::EndCantRight() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcAlignment2DCantSegment::setEndCantRight(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::vector<::Ifc4x3_rc1::IfcAlignment2DCant> Ifc4x3_rc1::IfcAlignment2DCantSegment::ToCant() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[30], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DCantSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[32]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DCantSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[32]); } // Ifc4x3_rc1::IfcAlignment2DCantSegment::IfcAlignment2DCantSegment(const std::weak_ptr& e) : IfcAlignment2DSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DCantSegment::IfcAlignment2DCantSegment(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, double v4_StartDistAlong, double v5_HorizontalLength, double v6_StartCantLeft, std::optional< double > v7_EndCantLeft, double v8_StartCantRight, std::optional< double > v9_EndCantRight) : IfcAlignment2DSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_StartDistAlong));set_attribute_value(4, (v5_HorizontalLength));set_attribute_value(5, (v6_StartCantLeft)); if (v7_EndCantLeft) {set_attribute_value(6, (*v7_EndCantLeft)); }set_attribute_value(7, (v8_StartCantRight)); if (v9_EndCantRight) {set_attribute_value(8, (*v9_EndCantRight)); }; populate_derived(); } // Function implementations for IfcAlignment2DHorizontal std::optional< double > Ifc4x3_rc1::IfcAlignment2DHorizontal::StartDistAlong() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } double v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcAlignment2DHorizontal::setStartDistAlong(const std::optional< double >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::vector< ::Ifc4x3_rc1::IfcAlignment2DHorizontalSegment > Ifc4x3_rc1::IfcAlignment2DHorizontal::Segments() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcAlignment2DHorizontalSegment>(es); } void Ifc4x3_rc1::IfcAlignment2DHorizontal::setSegments(const std::vector< ::Ifc4x3_rc1::IfcAlignment2DHorizontalSegment >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } std::vector<::Ifc4x3_rc1::IfcAlignmentCurve> Ifc4x3_rc1::IfcAlignment2DHorizontal::ToAlignmentCurve() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[43], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DHorizontal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[34]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DHorizontal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[34]); } // Ifc4x3_rc1::IfcAlignment2DHorizontal::IfcAlignment2DHorizontal(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcAlignment2DHorizontal::IfcAlignment2DHorizontal(std::optional< double > v1_StartDistAlong, std::vector< ::Ifc4x3_rc1::IfcAlignment2DHorizontalSegment > v2_Segments) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { if (v1_StartDistAlong) {set_attribute_value(0, (*v1_StartDistAlong)); }set_attribute_value(1, (v2_Segments)->generalize());; populate_derived(); } // Function implementations for IfcAlignment2DHorizontalSegment ::Ifc4x3_rc1::IfcCurveSegment2D Ifc4x3_rc1::IfcAlignment2DHorizontalSegment::CurveGeometry() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcCurveSegment2D>(); } void Ifc4x3_rc1::IfcAlignment2DHorizontalSegment::setCurveGeometry(const ::Ifc4x3_rc1::IfcCurveSegment2D& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::vector<::Ifc4x3_rc1::IfcAlignment2DHorizontal> Ifc4x3_rc1::IfcAlignment2DHorizontalSegment::ToHorizontal() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[34], 1)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DHorizontalSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[35]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DHorizontalSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[35]); } // Ifc4x3_rc1::IfcAlignment2DHorizontalSegment::IfcAlignment2DHorizontalSegment(const std::weak_ptr& e) : IfcAlignment2DSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DHorizontalSegment::IfcAlignment2DHorizontalSegment(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, ::Ifc4x3_rc1::IfcCurveSegment2D v4_CurveGeometry) : IfcAlignment2DSegment(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_CurveGeometry));; populate_derived(); } // Function implementations for IfcAlignment2DSegment std::optional< bool > Ifc4x3_rc1::IfcAlignment2DSegment::TangentialContinuity() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } bool v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcAlignment2DSegment::setTangentialContinuity(const std::optional< bool >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcAlignment2DSegment::StartTag() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcAlignment2DSegment::setStartTag(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcAlignment2DSegment::EndTag() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcAlignment2DSegment::setEndTag(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[36]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[36]); } // Ifc4x3_rc1::IfcAlignment2DSegment::IfcAlignment2DSegment(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcAlignment2DSegment::IfcAlignment2DSegment(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }; populate_derived(); } // Function implementations for IfcAlignment2DVerSegCircularArc double Ifc4x3_rc1::IfcAlignment2DVerSegCircularArc::Radius() const { double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcAlignment2DVerSegCircularArc::setRadius(const double& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } bool Ifc4x3_rc1::IfcAlignment2DVerSegCircularArc::IsConvex() const { bool v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcAlignment2DVerSegCircularArc::setIsConvex(const bool& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerSegCircularArc::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[37]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerSegCircularArc::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[37]); } // Ifc4x3_rc1::IfcAlignment2DVerSegCircularArc::IfcAlignment2DVerSegCircularArc(const std::weak_ptr& e) : IfcAlignment2DVerticalSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DVerSegCircularArc::IfcAlignment2DVerSegCircularArc(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, double v4_StartDistAlong, double v5_HorizontalLength, double v6_StartHeight, double v7_StartGradient, double v8_Radius, bool v9_IsConvex) : IfcAlignment2DVerticalSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_StartDistAlong));set_attribute_value(4, (v5_HorizontalLength));set_attribute_value(5, (v6_StartHeight));set_attribute_value(6, (v7_StartGradient));set_attribute_value(7, (v8_Radius));set_attribute_value(8, (v9_IsConvex));; populate_derived(); } // Function implementations for IfcAlignment2DVerSegLine // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerSegLine::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[38]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerSegLine::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[38]); } // Ifc4x3_rc1::IfcAlignment2DVerSegLine::IfcAlignment2DVerSegLine(const std::weak_ptr& e) : IfcAlignment2DVerticalSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DVerSegLine::IfcAlignment2DVerSegLine(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, double v4_StartDistAlong, double v5_HorizontalLength, double v6_StartHeight, double v7_StartGradient) : IfcAlignment2DVerticalSegment(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_StartDistAlong));set_attribute_value(4, (v5_HorizontalLength));set_attribute_value(5, (v6_StartHeight));set_attribute_value(6, (v7_StartGradient));; populate_derived(); } // Function implementations for IfcAlignment2DVerSegParabolicArc double Ifc4x3_rc1::IfcAlignment2DVerSegParabolicArc::ParabolaConstant() const { double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcAlignment2DVerSegParabolicArc::setParabolaConstant(const double& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } bool Ifc4x3_rc1::IfcAlignment2DVerSegParabolicArc::IsConvex() const { bool v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcAlignment2DVerSegParabolicArc::setIsConvex(const bool& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerSegParabolicArc::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[39]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerSegParabolicArc::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[39]); } // Ifc4x3_rc1::IfcAlignment2DVerSegParabolicArc::IfcAlignment2DVerSegParabolicArc(const std::weak_ptr& e) : IfcAlignment2DVerticalSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DVerSegParabolicArc::IfcAlignment2DVerSegParabolicArc(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, double v4_StartDistAlong, double v5_HorizontalLength, double v6_StartHeight, double v7_StartGradient, double v8_ParabolaConstant, bool v9_IsConvex) : IfcAlignment2DVerticalSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_StartDistAlong));set_attribute_value(4, (v5_HorizontalLength));set_attribute_value(5, (v6_StartHeight));set_attribute_value(6, (v7_StartGradient));set_attribute_value(7, (v8_ParabolaConstant));set_attribute_value(8, (v9_IsConvex));; populate_derived(); } // Function implementations for IfcAlignment2DVerSegTransition std::optional< double > Ifc4x3_rc1::IfcAlignment2DVerSegTransition::StartRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcAlignment2DVerSegTransition::setStartRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcAlignment2DVerSegTransition::EndRadius() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcAlignment2DVerSegTransition::setEndRadius(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } bool Ifc4x3_rc1::IfcAlignment2DVerSegTransition::IsStartRadiusCCW() const { bool v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcAlignment2DVerSegTransition::setIsStartRadiusCCW(const bool& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } bool Ifc4x3_rc1::IfcAlignment2DVerSegTransition::IsEndRadiusCCW() const { bool v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcAlignment2DVerSegTransition::setIsEndRadiusCCW(const bool& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } ::Ifc4x3_rc1::IfcTransitionCurveType::Value Ifc4x3_rc1::IfcAlignment2DVerSegTransition::TransitionCurveType() const { return ::Ifc4x3_rc1::IfcTransitionCurveType::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcAlignment2DVerSegTransition::setTransitionCurveType(const ::Ifc4x3_rc1::IfcTransitionCurveType::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCurveType::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerSegTransition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[40]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerSegTransition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[40]); } // Ifc4x3_rc1::IfcAlignment2DVerSegTransition::IfcAlignment2DVerSegTransition(const std::weak_ptr& e) : IfcAlignment2DVerticalSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DVerSegTransition::IfcAlignment2DVerSegTransition(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, double v4_StartDistAlong, double v5_HorizontalLength, double v6_StartHeight, double v7_StartGradient, std::optional< double > v8_StartRadius, std::optional< double > v9_EndRadius, bool v10_IsStartRadiusCCW, bool v11_IsEndRadiusCCW, ::Ifc4x3_rc1::IfcTransitionCurveType::Value v12_TransitionCurveType) : IfcAlignment2DVerticalSegment(const std::weak_ptr&(in_memory_attribute_storage(12))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_StartDistAlong));set_attribute_value(4, (v5_HorizontalLength));set_attribute_value(5, (v6_StartHeight));set_attribute_value(6, (v7_StartGradient)); if (v8_StartRadius) {set_attribute_value(7, (*v8_StartRadius)); } if (v9_EndRadius) {set_attribute_value(8, (*v9_EndRadius)); }set_attribute_value(9, (v10_IsStartRadiusCCW));set_attribute_value(10, (v11_IsEndRadiusCCW));set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCurveType::Class(),(size_t)v12_TransitionCurveType)));; populate_derived(); } // Function implementations for IfcAlignment2DVertical std::vector< ::Ifc4x3_rc1::IfcAlignment2DVerticalSegment > Ifc4x3_rc1::IfcAlignment2DVertical::Segments() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcAlignment2DVerticalSegment>(es); } void Ifc4x3_rc1::IfcAlignment2DVertical::setSegments(const std::vector< ::Ifc4x3_rc1::IfcAlignment2DVerticalSegment >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } std::vector<::Ifc4x3_rc1::IfcAlignmentCurve> Ifc4x3_rc1::IfcAlignment2DVertical::ToAlignmentCurve() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[43], 1)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVertical::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[41]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVertical::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[41]); } // Ifc4x3_rc1::IfcAlignment2DVertical::IfcAlignment2DVertical(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcAlignment2DVertical::IfcAlignment2DVertical(std::vector< ::Ifc4x3_rc1::IfcAlignment2DVerticalSegment > v1_Segments) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Segments)->generalize());; populate_derived(); } // Function implementations for IfcAlignment2DVerticalSegment double Ifc4x3_rc1::IfcAlignment2DVerticalSegment::StartDistAlong() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcAlignment2DVerticalSegment::setStartDistAlong(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcAlignment2DVerticalSegment::HorizontalLength() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcAlignment2DVerticalSegment::setHorizontalLength(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcAlignment2DVerticalSegment::StartHeight() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcAlignment2DVerticalSegment::setStartHeight(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcAlignment2DVerticalSegment::StartGradient() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcAlignment2DVerticalSegment::setStartGradient(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::vector<::Ifc4x3_rc1::IfcAlignment2DVertical> Ifc4x3_rc1::IfcAlignment2DVerticalSegment::ToVertical() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[41], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerticalSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[42]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignment2DVerticalSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[42]); } // Ifc4x3_rc1::IfcAlignment2DVerticalSegment::IfcAlignment2DVerticalSegment(const std::weak_ptr& e) : IfcAlignment2DSegment(e) { } // Ifc4x3_rc1::IfcAlignment2DVerticalSegment::IfcAlignment2DVerticalSegment(std::optional< bool > v1_TangentialContinuity, std::optional< std::string > v2_StartTag, std::optional< std::string > v3_EndTag, double v4_StartDistAlong, double v5_HorizontalLength, double v6_StartHeight, double v7_StartGradient) : IfcAlignment2DSegment(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_TangentialContinuity) {set_attribute_value(0, (*v1_TangentialContinuity)); } if (v2_StartTag) {set_attribute_value(1, (*v2_StartTag)); } if (v3_EndTag) {set_attribute_value(2, (*v3_EndTag)); }set_attribute_value(3, (v4_StartDistAlong));set_attribute_value(4, (v5_HorizontalLength));set_attribute_value(5, (v6_StartHeight));set_attribute_value(6, (v7_StartGradient));; populate_derived(); } // Function implementations for IfcAlignmentCurve ::Ifc4x3_rc1::IfcAlignment2DHorizontal Ifc4x3_rc1::IfcAlignmentCurve::Horizontal() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcAlignment2DHorizontal>(); } void Ifc4x3_rc1::IfcAlignmentCurve::setHorizontal(const ::Ifc4x3_rc1::IfcAlignment2DHorizontal& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcAlignment2DVertical Ifc4x3_rc1::IfcAlignmentCurve::Vertical() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcAlignment2DVertical{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcAlignment2DVertical>(); } void Ifc4x3_rc1::IfcAlignmentCurve::setVertical(const ::Ifc4x3_rc1::IfcAlignment2DVertical& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcAlignmentCurve::Tag() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcAlignmentCurve::setTag(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAlignmentCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[43]); } const IfcParse::entity& Ifc4x3_rc1::IfcAlignmentCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[43]); } // Ifc4x3_rc1::IfcAlignmentCurve::IfcAlignmentCurve(const std::weak_ptr& e) : IfcBoundedCurve(e) { } // Ifc4x3_rc1::IfcAlignmentCurve::IfcAlignmentCurve(::Ifc4x3_rc1::IfcAlignment2DHorizontal v1_Horizontal, ::Ifc4x3_rc1::IfcAlignment2DVertical v2_Vertical, std::optional< std::string > v3_Tag) : IfcBoundedCurve(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Horizontal)); if (v2_Vertical) {set_attribute_value(1, (*v2_Vertical)); } if (v3_Tag) {set_attribute_value(2, (*v3_Tag)); }; populate_derived(); } // Function implementations for IfcAnnotation std::optional< ::Ifc4x3_rc1::IfcAnnotationTypeEnum::Value > Ifc4x3_rc1::IfcAnnotation::PredefinedType() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAnnotationTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcAnnotation::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcAnnotationTypeEnum::Value >& v) { if (v) {set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcAnnotationTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(7);} } std::vector<::Ifc4x3_rc1::IfcRelContainedInSpatialStructure> Ifc4x3_rc1::IfcAnnotation::ContainedInStructure() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[937], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAnnotation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[49]); } const IfcParse::entity& Ifc4x3_rc1::IfcAnnotation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[49]); } // Ifc4x3_rc1::IfcAnnotation::IfcAnnotation(const std::weak_ptr& e) : IfcProduct(e) { } // Ifc4x3_rc1::IfcAnnotation::IfcAnnotation(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< ::Ifc4x3_rc1::IfcAnnotationTypeEnum::Value > v8_PredefinedType) : IfcProduct(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_PredefinedType) {set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcAnnotationTypeEnum::Class(),(size_t)*v8_PredefinedType))); }; populate_derived(); } // Function implementations for IfcAnnotationFillArea ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcAnnotationFillArea::OuterBoundary() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcAnnotationFillArea::setOuterBoundary(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::vector< ::Ifc4x3_rc1::IfcCurve > > Ifc4x3_rc1::IfcAnnotationFillArea::InnerBoundaries() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcCurve>(es); } void Ifc4x3_rc1::IfcAnnotationFillArea::setInnerBoundaries(const std::optional< std::vector< ::Ifc4x3_rc1::IfcCurve > >& v) { if (v) {set_attribute_value(1, cast_vector(*v));} else {unset_attribute_value(1);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAnnotationFillArea::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[50]); } const IfcParse::entity& Ifc4x3_rc1::IfcAnnotationFillArea::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[50]); } // Ifc4x3_rc1::IfcAnnotationFillArea::IfcAnnotationFillArea(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcAnnotationFillArea::IfcAnnotationFillArea(::Ifc4x3_rc1::IfcCurve v1_OuterBoundary, std::optional< std::vector< ::Ifc4x3_rc1::IfcCurve > > v2_InnerBoundaries) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_OuterBoundary)); if (v2_InnerBoundaries) {set_attribute_value(1, (*v2_InnerBoundaries)->generalize()); }; populate_derived(); } // Function implementations for IfcApplication ::Ifc4x3_rc1::IfcOrganization Ifc4x3_rc1::IfcApplication::ApplicationDeveloper() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcOrganization>(); } void Ifc4x3_rc1::IfcApplication::setApplicationDeveloper(const ::Ifc4x3_rc1::IfcOrganization& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::string Ifc4x3_rc1::IfcApplication::Version() const { std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcApplication::setVersion(const std::string& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::string Ifc4x3_rc1::IfcApplication::ApplicationFullName() const { std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcApplication::setApplicationFullName(const std::string& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::string Ifc4x3_rc1::IfcApplication::ApplicationIdentifier() const { std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcApplication::setApplicationIdentifier(const std::string& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcApplication::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[52]); } const IfcParse::entity& Ifc4x3_rc1::IfcApplication::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[52]); } // Ifc4x3_rc1::IfcApplication::IfcApplication(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcApplication::IfcApplication(::Ifc4x3_rc1::IfcOrganization v1_ApplicationDeveloper, std::string v2_Version, std::string v3_ApplicationFullName, std::string v4_ApplicationIdentifier) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_ApplicationDeveloper));set_attribute_value(1, (v2_Version));set_attribute_value(2, (v3_ApplicationFullName));set_attribute_value(3, (v4_ApplicationIdentifier));; populate_derived(); } // Function implementations for IfcAppliedValue std::optional< std::string > Ifc4x3_rc1::IfcAppliedValue::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcAppliedValue::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcAppliedValue::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcAppliedValue::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } ::Ifc4x3_rc1::IfcAppliedValueSelect Ifc4x3_rc1::IfcAppliedValue::AppliedValue() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcAppliedValueSelect{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcAppliedValueSelect>(); } void Ifc4x3_rc1::IfcAppliedValue::setAppliedValue(const ::Ifc4x3_rc1::IfcAppliedValueSelect& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcMeasureWithUnit Ifc4x3_rc1::IfcAppliedValue::UnitBasis() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcMeasureWithUnit{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcMeasureWithUnit>(); } void Ifc4x3_rc1::IfcAppliedValue::setUnitBasis(const ::Ifc4x3_rc1::IfcMeasureWithUnit& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcAppliedValue::ApplicableDate() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcAppliedValue::setApplicableDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcAppliedValue::FixedUntilDate() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcAppliedValue::setFixedUntilDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcAppliedValue::Category() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcAppliedValue::setCategory(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcAppliedValue::Condition() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcAppliedValue::setCondition(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< ::Ifc4x3_rc1::IfcArithmeticOperatorEnum::Value > Ifc4x3_rc1::IfcAppliedValue::ArithmeticOperator() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcArithmeticOperatorEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcAppliedValue::setArithmeticOperator(const std::optional< ::Ifc4x3_rc1::IfcArithmeticOperatorEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcArithmeticOperatorEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > Ifc4x3_rc1::IfcAppliedValue::Components() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(9); return cast_vector<::Ifc4x3_rc1::IfcAppliedValue>(es); } void Ifc4x3_rc1::IfcAppliedValue::setComponents(const std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > >& v) { if (v) {set_attribute_value(9, cast_vector(*v));} else {unset_attribute_value(9);} } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcAppliedValue::HasExternalReference() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAppliedValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[53]); } const IfcParse::entity& Ifc4x3_rc1::IfcAppliedValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[53]); } // Ifc4x3_rc1::IfcAppliedValue::IfcAppliedValue(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcAppliedValue::IfcAppliedValue(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcAppliedValueSelect v3_AppliedValue, ::Ifc4x3_rc1::IfcMeasureWithUnit v4_UnitBasis, std::optional< std::string > v5_ApplicableDate, std::optional< std::string > v6_FixedUntilDate, std::optional< std::string > v7_Category, std::optional< std::string > v8_Condition, std::optional< ::Ifc4x3_rc1::IfcArithmeticOperatorEnum::Value > v9_ArithmeticOperator, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_Components) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(10))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_AppliedValue) {set_attribute_value(2, (*v3_AppliedValue)); } if (v4_UnitBasis) {set_attribute_value(3, (*v4_UnitBasis)); } if (v5_ApplicableDate) {set_attribute_value(4, (*v5_ApplicableDate)); } if (v6_FixedUntilDate) {set_attribute_value(5, (*v6_FixedUntilDate)); } if (v7_Category) {set_attribute_value(6, (*v7_Category)); } if (v8_Condition) {set_attribute_value(7, (*v8_Condition)); } if (v9_ArithmeticOperator) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcArithmeticOperatorEnum::Class(),(size_t)*v9_ArithmeticOperator))); } if (v10_Components) {set_attribute_value(9, (*v10_Components)->generalize()); }; populate_derived(); } // Function implementations for IfcApproval std::optional< std::string > Ifc4x3_rc1::IfcApproval::Identifier() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcApproval::setIdentifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcApproval::Name() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcApproval::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcApproval::Description() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcApproval::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::string > Ifc4x3_rc1::IfcApproval::TimeOfApproval() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcApproval::setTimeOfApproval(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcApproval::Status() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcApproval::setStatus(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcApproval::Level() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcApproval::setLevel(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcApproval::Qualifier() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcApproval::setQualifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcApproval::RequestingApproval() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcActorSelect{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcApproval::setRequestingApproval(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcApproval::GivingApproval() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcActorSelect{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcApproval::setGivingApproval(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcApproval::HasExternalReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } std::vector<::Ifc4x3_rc1::IfcRelAssociatesApproval> Ifc4x3_rc1::IfcApproval::ApprovedObjects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[920], 5)); } std::vector<::Ifc4x3_rc1::IfcResourceApprovalRelationship> Ifc4x3_rc1::IfcApproval::ApprovedResources() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[966], 3)); } std::vector<::Ifc4x3_rc1::IfcApprovalRelationship> Ifc4x3_rc1::IfcApproval::IsRelatedWith() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[56], 3)); } std::vector<::Ifc4x3_rc1::IfcApprovalRelationship> Ifc4x3_rc1::IfcApproval::Relates() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[56], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcApproval::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[55]); } const IfcParse::entity& Ifc4x3_rc1::IfcApproval::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[55]); } // Ifc4x3_rc1::IfcApproval::IfcApproval(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcApproval::IfcApproval(std::optional< std::string > v1_Identifier, std::optional< std::string > v2_Name, std::optional< std::string > v3_Description, std::optional< std::string > v4_TimeOfApproval, std::optional< std::string > v5_Status, std::optional< std::string > v6_Level, std::optional< std::string > v7_Qualifier, ::Ifc4x3_rc1::IfcActorSelect v8_RequestingApproval, ::Ifc4x3_rc1::IfcActorSelect v9_GivingApproval) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(9))) { if (v1_Identifier) {set_attribute_value(0, (*v1_Identifier)); } if (v2_Name) {set_attribute_value(1, (*v2_Name)); } if (v3_Description) {set_attribute_value(2, (*v3_Description)); } if (v4_TimeOfApproval) {set_attribute_value(3, (*v4_TimeOfApproval)); } if (v5_Status) {set_attribute_value(4, (*v5_Status)); } if (v6_Level) {set_attribute_value(5, (*v6_Level)); } if (v7_Qualifier) {set_attribute_value(6, (*v7_Qualifier)); } if (v8_RequestingApproval) {set_attribute_value(7, (*v8_RequestingApproval)); } if (v9_GivingApproval) {set_attribute_value(8, (*v9_GivingApproval)); }; populate_derived(); } // Function implementations for IfcApprovalRelationship ::Ifc4x3_rc1::IfcApproval Ifc4x3_rc1::IfcApprovalRelationship::RelatingApproval() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcApproval>(); } void Ifc4x3_rc1::IfcApprovalRelationship::setRelatingApproval(const ::Ifc4x3_rc1::IfcApproval& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< ::Ifc4x3_rc1::IfcApproval > Ifc4x3_rc1::IfcApprovalRelationship::RelatedApprovals() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcApproval>(es); } void Ifc4x3_rc1::IfcApprovalRelationship::setRelatedApprovals(const std::vector< ::Ifc4x3_rc1::IfcApproval >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcApprovalRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[56]); } const IfcParse::entity& Ifc4x3_rc1::IfcApprovalRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[56]); } // Ifc4x3_rc1::IfcApprovalRelationship::IfcApprovalRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcApprovalRelationship::IfcApprovalRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcApproval v3_RelatingApproval, std::vector< ::Ifc4x3_rc1::IfcApproval > v4_RelatedApprovals) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_RelatingApproval));set_attribute_value(3, (v4_RelatedApprovals)->generalize());; populate_derived(); } // Function implementations for IfcArbitraryClosedProfileDef ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcArbitraryClosedProfileDef::OuterCurve() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcArbitraryClosedProfileDef::setOuterCurve(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcArbitraryClosedProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[57]); } const IfcParse::entity& Ifc4x3_rc1::IfcArbitraryClosedProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[57]); } // Ifc4x3_rc1::IfcArbitraryClosedProfileDef::IfcArbitraryClosedProfileDef(const std::weak_ptr& e) : IfcProfileDef(e) { } // Ifc4x3_rc1::IfcArbitraryClosedProfileDef::IfcArbitraryClosedProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcCurve v3_OuterCurve) : IfcProfileDef(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }set_attribute_value(2, (v3_OuterCurve));; populate_derived(); } // Function implementations for IfcArbitraryOpenProfileDef ::Ifc4x3_rc1::IfcBoundedCurve Ifc4x3_rc1::IfcArbitraryOpenProfileDef::Curve() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcBoundedCurve>(); } void Ifc4x3_rc1::IfcArbitraryOpenProfileDef::setCurve(const ::Ifc4x3_rc1::IfcBoundedCurve& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcArbitraryOpenProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[58]); } const IfcParse::entity& Ifc4x3_rc1::IfcArbitraryOpenProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[58]); } // Ifc4x3_rc1::IfcArbitraryOpenProfileDef::IfcArbitraryOpenProfileDef(const std::weak_ptr& e) : IfcProfileDef(e) { } // Ifc4x3_rc1::IfcArbitraryOpenProfileDef::IfcArbitraryOpenProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcBoundedCurve v3_Curve) : IfcProfileDef(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }set_attribute_value(2, (v3_Curve));; populate_derived(); } // Function implementations for IfcArbitraryProfileDefWithVoids std::vector< ::Ifc4x3_rc1::IfcCurve > Ifc4x3_rc1::IfcArbitraryProfileDefWithVoids::InnerCurves() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcCurve>(es); } void Ifc4x3_rc1::IfcArbitraryProfileDefWithVoids::setInnerCurves(const std::vector< ::Ifc4x3_rc1::IfcCurve >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcArbitraryProfileDefWithVoids::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[59]); } const IfcParse::entity& Ifc4x3_rc1::IfcArbitraryProfileDefWithVoids::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[59]); } // Ifc4x3_rc1::IfcArbitraryProfileDefWithVoids::IfcArbitraryProfileDefWithVoids(const std::weak_ptr& e) : IfcArbitraryClosedProfileDef(e) { } // Ifc4x3_rc1::IfcArbitraryProfileDefWithVoids::IfcArbitraryProfileDefWithVoids(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcCurve v3_OuterCurve, std::vector< ::Ifc4x3_rc1::IfcCurve > v4_InnerCurves) : IfcArbitraryClosedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }set_attribute_value(2, (v3_OuterCurve));set_attribute_value(3, (v4_InnerCurves)->generalize());; populate_derived(); } // Function implementations for IfcAsset std::optional< std::string > Ifc4x3_rc1::IfcAsset::Identification() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcAsset::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } ::Ifc4x3_rc1::IfcCostValue Ifc4x3_rc1::IfcAsset::OriginalValue() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcCostValue{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcCostValue>(); } void Ifc4x3_rc1::IfcAsset::setOriginalValue(const ::Ifc4x3_rc1::IfcCostValue& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcCostValue Ifc4x3_rc1::IfcAsset::CurrentValue() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcCostValue{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcCostValue>(); } void Ifc4x3_rc1::IfcAsset::setCurrentValue(const ::Ifc4x3_rc1::IfcCostValue& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcCostValue Ifc4x3_rc1::IfcAsset::TotalReplacementCost() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcCostValue{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcCostValue>(); } void Ifc4x3_rc1::IfcAsset::setTotalReplacementCost(const ::Ifc4x3_rc1::IfcCostValue& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcAsset::Owner() const { if(get_attribute_value(9).isNull()) { return ::Ifc4x3_rc1::IfcActorSelect{}; } return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcAsset::setOwner(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcAsset::User() const { if(get_attribute_value(10).isNull()) { return ::Ifc4x3_rc1::IfcActorSelect{}; } return ((express::Base)(get_attribute_value(10))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcAsset::setUser(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } ::Ifc4x3_rc1::IfcPerson Ifc4x3_rc1::IfcAsset::ResponsiblePerson() const { if(get_attribute_value(11).isNull()) { return ::Ifc4x3_rc1::IfcPerson{}; } return ((express::Base)(get_attribute_value(11))).as<::Ifc4x3_rc1::IfcPerson>(); } void Ifc4x3_rc1::IfcAsset::setResponsiblePerson(const ::Ifc4x3_rc1::IfcPerson& v) { set_attribute_value(11, v);if constexpr (false)unset_attribute_value(11); } std::optional< std::string > Ifc4x3_rc1::IfcAsset::IncorporationDate() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcAsset::setIncorporationDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } ::Ifc4x3_rc1::IfcCostValue Ifc4x3_rc1::IfcAsset::DepreciatedValue() const { if(get_attribute_value(13).isNull()) { return ::Ifc4x3_rc1::IfcCostValue{}; } return ((express::Base)(get_attribute_value(13))).as<::Ifc4x3_rc1::IfcCostValue>(); } void Ifc4x3_rc1::IfcAsset::setDepreciatedValue(const ::Ifc4x3_rc1::IfcCostValue& v) { set_attribute_value(13, v);if constexpr (false)unset_attribute_value(13); } // const IfcParse::entity& Ifc4x3_rc1::IfcAsset::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[65]); } const IfcParse::entity& Ifc4x3_rc1::IfcAsset::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[65]); } // Ifc4x3_rc1::IfcAsset::IfcAsset(const std::weak_ptr& e) : IfcGroup(e) { } // Ifc4x3_rc1::IfcAsset::IfcAsset(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, ::Ifc4x3_rc1::IfcCostValue v7_OriginalValue, ::Ifc4x3_rc1::IfcCostValue v8_CurrentValue, ::Ifc4x3_rc1::IfcCostValue v9_TotalReplacementCost, ::Ifc4x3_rc1::IfcActorSelect v10_Owner, ::Ifc4x3_rc1::IfcActorSelect v11_User, ::Ifc4x3_rc1::IfcPerson v12_ResponsiblePerson, std::optional< std::string > v13_IncorporationDate, ::Ifc4x3_rc1::IfcCostValue v14_DepreciatedValue) : IfcGroup(const std::weak_ptr&(in_memory_attribute_storage(14))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_OriginalValue) {set_attribute_value(6, (*v7_OriginalValue)); } if (v8_CurrentValue) {set_attribute_value(7, (*v8_CurrentValue)); } if (v9_TotalReplacementCost) {set_attribute_value(8, (*v9_TotalReplacementCost)); } if (v10_Owner) {set_attribute_value(9, (*v10_Owner)); } if (v11_User) {set_attribute_value(10, (*v11_User)); } if (v12_ResponsiblePerson) {set_attribute_value(11, (*v12_ResponsiblePerson)); } if (v13_IncorporationDate) {set_attribute_value(12, (*v13_IncorporationDate)); } if (v14_DepreciatedValue) {set_attribute_value(13, (*v14_DepreciatedValue)); }; populate_derived(); } // Function implementations for IfcAsymmetricIShapeProfileDef double Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::BottomFlangeWidth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setBottomFlangeWidth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::OverallDepth() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setOverallDepth(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::WebThickness() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setWebThickness(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::BottomFlangeThickness() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setBottomFlangeThickness(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< double > Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::BottomFlangeFilletRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setBottomFlangeFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } double Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::TopFlangeWidth() const { double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setTopFlangeWidth(const double& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } std::optional< double > Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::TopFlangeThickness() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setTopFlangeThickness(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::TopFlangeFilletRadius() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setTopFlangeFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::BottomFlangeEdgeRadius() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setBottomFlangeEdgeRadius(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< double > Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::BottomFlangeSlope() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setBottomFlangeSlope(const std::optional< double >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< double > Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::TopFlangeEdgeRadius() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } double v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setTopFlangeEdgeRadius(const std::optional< double >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } std::optional< double > Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::TopFlangeSlope() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } double v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::setTopFlangeSlope(const std::optional< double >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[66]); } const IfcParse::entity& Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[66]); } // Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::IfcAsymmetricIShapeProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcAsymmetricIShapeProfileDef::IfcAsymmetricIShapeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_BottomFlangeWidth, double v5_OverallDepth, double v6_WebThickness, double v7_BottomFlangeThickness, std::optional< double > v8_BottomFlangeFilletRadius, double v9_TopFlangeWidth, std::optional< double > v10_TopFlangeThickness, std::optional< double > v11_TopFlangeFilletRadius, std::optional< double > v12_BottomFlangeEdgeRadius, std::optional< double > v13_BottomFlangeSlope, std::optional< double > v14_TopFlangeEdgeRadius, std::optional< double > v15_TopFlangeSlope) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(15))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_BottomFlangeWidth));set_attribute_value(4, (v5_OverallDepth));set_attribute_value(5, (v6_WebThickness));set_attribute_value(6, (v7_BottomFlangeThickness)); if (v8_BottomFlangeFilletRadius) {set_attribute_value(7, (*v8_BottomFlangeFilletRadius)); }set_attribute_value(8, (v9_TopFlangeWidth)); if (v10_TopFlangeThickness) {set_attribute_value(9, (*v10_TopFlangeThickness)); } if (v11_TopFlangeFilletRadius) {set_attribute_value(10, (*v11_TopFlangeFilletRadius)); } if (v12_BottomFlangeEdgeRadius) {set_attribute_value(11, (*v12_BottomFlangeEdgeRadius)); } if (v13_BottomFlangeSlope) {set_attribute_value(12, (*v13_BottomFlangeSlope)); } if (v14_TopFlangeEdgeRadius) {set_attribute_value(13, (*v14_TopFlangeEdgeRadius)); } if (v15_TopFlangeSlope) {set_attribute_value(14, (*v15_TopFlangeSlope)); }; populate_derived(); } // Function implementations for IfcAudioVisualAppliance std::optional< ::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value > Ifc4x3_rc1::IfcAudioVisualAppliance::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcAudioVisualAppliance::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcAudioVisualAppliance::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[67]); } const IfcParse::entity& Ifc4x3_rc1::IfcAudioVisualAppliance::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[67]); } // Ifc4x3_rc1::IfcAudioVisualAppliance::IfcAudioVisualAppliance(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcAudioVisualAppliance::IfcAudioVisualAppliance(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcAudioVisualApplianceType ::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value Ifc4x3_rc1::IfcAudioVisualApplianceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcAudioVisualApplianceType::setPredefinedType(const ::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcAudioVisualApplianceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[68]); } const IfcParse::entity& Ifc4x3_rc1::IfcAudioVisualApplianceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[68]); } // Ifc4x3_rc1::IfcAudioVisualApplianceType::IfcAudioVisualApplianceType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcAudioVisualApplianceType::IfcAudioVisualApplianceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcAxis1Placement ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcAxis1Placement::Axis() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcDirection{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcAxis1Placement::setAxis(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcAxis1Placement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[70]); } const IfcParse::entity& Ifc4x3_rc1::IfcAxis1Placement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[70]); } // Ifc4x3_rc1::IfcAxis1Placement::IfcAxis1Placement(const std::weak_ptr& e) : IfcPlacement(e) { } // Ifc4x3_rc1::IfcAxis1Placement::IfcAxis1Placement(::Ifc4x3_rc1::IfcCartesianPoint v1_Location, ::Ifc4x3_rc1::IfcDirection v2_Axis) : IfcPlacement(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Location)); if (v2_Axis) {set_attribute_value(1, (*v2_Axis)); }; populate_derived(); } // Function implementations for IfcAxis2Placement2D ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcAxis2Placement2D::RefDirection() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcDirection{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcAxis2Placement2D::setRefDirection(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcAxis2Placement2D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[72]); } const IfcParse::entity& Ifc4x3_rc1::IfcAxis2Placement2D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[72]); } // Ifc4x3_rc1::IfcAxis2Placement2D::IfcAxis2Placement2D(const std::weak_ptr& e) : IfcPlacement(e) { } // Ifc4x3_rc1::IfcAxis2Placement2D::IfcAxis2Placement2D(::Ifc4x3_rc1::IfcCartesianPoint v1_Location, ::Ifc4x3_rc1::IfcDirection v2_RefDirection) : IfcPlacement(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Location)); if (v2_RefDirection) {set_attribute_value(1, (*v2_RefDirection)); }; populate_derived(); } // Function implementations for IfcAxis2Placement3D ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcAxis2Placement3D::Axis() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcDirection{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcAxis2Placement3D::setAxis(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcAxis2Placement3D::RefDirection() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcDirection{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcAxis2Placement3D::setRefDirection(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcAxis2Placement3D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[73]); } const IfcParse::entity& Ifc4x3_rc1::IfcAxis2Placement3D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[73]); } // Ifc4x3_rc1::IfcAxis2Placement3D::IfcAxis2Placement3D(const std::weak_ptr& e) : IfcPlacement(e) { } // Ifc4x3_rc1::IfcAxis2Placement3D::IfcAxis2Placement3D(::Ifc4x3_rc1::IfcCartesianPoint v1_Location, ::Ifc4x3_rc1::IfcDirection v2_Axis, ::Ifc4x3_rc1::IfcDirection v3_RefDirection) : IfcPlacement(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Location)); if (v2_Axis) {set_attribute_value(1, (*v2_Axis)); } if (v3_RefDirection) {set_attribute_value(2, (*v3_RefDirection)); }; populate_derived(); } // Function implementations for IfcAxisLateralInclination std::vector<::Ifc4x3_rc1::IfcLinearAxisWithInclination> Ifc4x3_rc1::IfcAxisLateralInclination::ToLinearAxis() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[610], 1)); } // const IfcParse::entity& Ifc4x3_rc1::IfcAxisLateralInclination::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[74]); } const IfcParse::entity& Ifc4x3_rc1::IfcAxisLateralInclination::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[74]); } // Ifc4x3_rc1::IfcAxisLateralInclination::IfcAxisLateralInclination(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcAxisLateralInclination::IfcAxisLateralInclination() : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcBSplineCurve int Ifc4x3_rc1::IfcBSplineCurve::Degree() const { int v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcBSplineCurve::setDegree(const int& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > Ifc4x3_rc1::IfcBSplineCurve::ControlPointsList() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcCartesianPoint>(es); } void Ifc4x3_rc1::IfcBSplineCurve::setControlPointsList(const std::vector< ::Ifc4x3_rc1::IfcCartesianPoint >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcBSplineCurveForm::Value Ifc4x3_rc1::IfcBSplineCurve::CurveForm() const { return ::Ifc4x3_rc1::IfcBSplineCurveForm::FromString(get_attribute_value(2)); } void Ifc4x3_rc1::IfcBSplineCurve::setCurveForm(const ::Ifc4x3_rc1::IfcBSplineCurveForm::Value& v) { set_attribute_value(2, EnumerationReference(&::Ifc4x3_rc1::IfcBSplineCurveForm::Class(), (size_t) v));if constexpr (false)unset_attribute_value(2); } boost::logic::tribool Ifc4x3_rc1::IfcBSplineCurve::ClosedCurve() const { boost::logic::tribool v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcBSplineCurve::setClosedCurve(const boost::logic::tribool& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } boost::logic::tribool Ifc4x3_rc1::IfcBSplineCurve::SelfIntersect() const { boost::logic::tribool v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcBSplineCurve::setSelfIntersect(const boost::logic::tribool& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcBSplineCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[112]); } const IfcParse::entity& Ifc4x3_rc1::IfcBSplineCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[112]); } // Ifc4x3_rc1::IfcBSplineCurve::IfcBSplineCurve(const std::weak_ptr& e) : IfcBoundedCurve(e) { } // Ifc4x3_rc1::IfcBSplineCurve::IfcBSplineCurve(int v1_Degree, std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > v2_ControlPointsList, ::Ifc4x3_rc1::IfcBSplineCurveForm::Value v3_CurveForm, boost::logic::tribool v4_ClosedCurve, boost::logic::tribool v5_SelfIntersect) : IfcBoundedCurve(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Degree));set_attribute_value(1, (v2_ControlPointsList)->generalize());set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcBSplineCurveForm::Class(),(size_t)v3_CurveForm)));set_attribute_value(3, (v4_ClosedCurve));set_attribute_value(4, (v5_SelfIntersect));; populate_derived(); } // Function implementations for IfcBSplineCurveWithKnots std::vector< int > /*[2:?]*/ Ifc4x3_rc1::IfcBSplineCurveWithKnots::KnotMultiplicities() const { std::vector< int > /*[2:?]*/ v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcBSplineCurveWithKnots::setKnotMultiplicities(const std::vector< int > /*[2:?]*/& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } std::vector< double > /*[2:?]*/ Ifc4x3_rc1::IfcBSplineCurveWithKnots::Knots() const { std::vector< double > /*[2:?]*/ v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcBSplineCurveWithKnots::setKnots(const std::vector< double > /*[2:?]*/& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcKnotType::Value Ifc4x3_rc1::IfcBSplineCurveWithKnots::KnotSpec() const { return ::Ifc4x3_rc1::IfcKnotType::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcBSplineCurveWithKnots::setKnotSpec(const ::Ifc4x3_rc1::IfcKnotType::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcKnotType::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcBSplineCurveWithKnots::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[114]); } const IfcParse::entity& Ifc4x3_rc1::IfcBSplineCurveWithKnots::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[114]); } // Ifc4x3_rc1::IfcBSplineCurveWithKnots::IfcBSplineCurveWithKnots(const std::weak_ptr& e) : IfcBSplineCurve(e) { } // Ifc4x3_rc1::IfcBSplineCurveWithKnots::IfcBSplineCurveWithKnots(int v1_Degree, std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > v2_ControlPointsList, ::Ifc4x3_rc1::IfcBSplineCurveForm::Value v3_CurveForm, boost::logic::tribool v4_ClosedCurve, boost::logic::tribool v5_SelfIntersect, std::vector< int > /*[2:?]*/ v6_KnotMultiplicities, std::vector< double > /*[2:?]*/ v7_Knots, ::Ifc4x3_rc1::IfcKnotType::Value v8_KnotSpec) : IfcBSplineCurve(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_Degree));set_attribute_value(1, (v2_ControlPointsList)->generalize());set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcBSplineCurveForm::Class(),(size_t)v3_CurveForm)));set_attribute_value(3, (v4_ClosedCurve));set_attribute_value(4, (v5_SelfIntersect));set_attribute_value(5, (v6_KnotMultiplicities));set_attribute_value(6, (v7_Knots));set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcKnotType::Class(),(size_t)v8_KnotSpec)));; populate_derived(); } // Function implementations for IfcBSplineSurface int Ifc4x3_rc1::IfcBSplineSurface::UDegree() const { int v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcBSplineSurface::setUDegree(const int& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } int Ifc4x3_rc1::IfcBSplineSurface::VDegree() const { int v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcBSplineSurface::setVDegree(const int& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::vector< std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > > Ifc4x3_rc1::IfcBSplineSurface::ControlPointsList() const { std::vector> es = get_attribute_value(2); return cast_vector_vector<::Ifc4x3_rc1::IfcCartesianPoint>(es); } void Ifc4x3_rc1::IfcBSplineSurface::setControlPointsList(const std::vector< std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > >& v) { set_attribute_value(2, cast_vector_vector(v));if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcBSplineSurfaceForm::Value Ifc4x3_rc1::IfcBSplineSurface::SurfaceForm() const { return ::Ifc4x3_rc1::IfcBSplineSurfaceForm::FromString(get_attribute_value(3)); } void Ifc4x3_rc1::IfcBSplineSurface::setSurfaceForm(const ::Ifc4x3_rc1::IfcBSplineSurfaceForm::Value& v) { set_attribute_value(3, EnumerationReference(&::Ifc4x3_rc1::IfcBSplineSurfaceForm::Class(), (size_t) v));if constexpr (false)unset_attribute_value(3); } boost::logic::tribool Ifc4x3_rc1::IfcBSplineSurface::UClosed() const { boost::logic::tribool v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcBSplineSurface::setUClosed(const boost::logic::tribool& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } boost::logic::tribool Ifc4x3_rc1::IfcBSplineSurface::VClosed() const { boost::logic::tribool v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcBSplineSurface::setVClosed(const boost::logic::tribool& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } boost::logic::tribool Ifc4x3_rc1::IfcBSplineSurface::SelfIntersect() const { boost::logic::tribool v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcBSplineSurface::setSelfIntersect(const boost::logic::tribool& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcBSplineSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[115]); } const IfcParse::entity& Ifc4x3_rc1::IfcBSplineSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[115]); } // Ifc4x3_rc1::IfcBSplineSurface::IfcBSplineSurface(const std::weak_ptr& e) : IfcBoundedSurface(e) { } // Ifc4x3_rc1::IfcBSplineSurface::IfcBSplineSurface(int v1_UDegree, int v2_VDegree, std::vector< std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > > v3_ControlPointsList, ::Ifc4x3_rc1::IfcBSplineSurfaceForm::Value v4_SurfaceForm, boost::logic::tribool v5_UClosed, boost::logic::tribool v6_VClosed, boost::logic::tribool v7_SelfIntersect) : IfcBoundedSurface(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_UDegree));set_attribute_value(1, (v2_VDegree));set_attribute_value(2, (v3_ControlPointsList)->generalize());set_attribute_value(3, (EnumerationReference(&::Ifc4x3_rc1::IfcBSplineSurfaceForm::Class(),(size_t)v4_SurfaceForm)));set_attribute_value(4, (v5_UClosed));set_attribute_value(5, (v6_VClosed));set_attribute_value(6, (v7_SelfIntersect));; populate_derived(); } // Function implementations for IfcBSplineSurfaceWithKnots std::vector< int > /*[2:?]*/ Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::UMultiplicities() const { std::vector< int > /*[2:?]*/ v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::setUMultiplicities(const std::vector< int > /*[2:?]*/& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::vector< int > /*[2:?]*/ Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::VMultiplicities() const { std::vector< int > /*[2:?]*/ v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::setVMultiplicities(const std::vector< int > /*[2:?]*/& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } std::vector< double > /*[2:?]*/ Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::UKnots() const { std::vector< double > /*[2:?]*/ v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::setUKnots(const std::vector< double > /*[2:?]*/& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } std::vector< double > /*[2:?]*/ Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::VKnots() const { std::vector< double > /*[2:?]*/ v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::setVKnots(const std::vector< double > /*[2:?]*/& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } ::Ifc4x3_rc1::IfcKnotType::Value Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::KnotSpec() const { return ::Ifc4x3_rc1::IfcKnotType::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::setKnotSpec(const ::Ifc4x3_rc1::IfcKnotType::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcKnotType::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[117]); } const IfcParse::entity& Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[117]); } // Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::IfcBSplineSurfaceWithKnots(const std::weak_ptr& e) : IfcBSplineSurface(e) { } // Ifc4x3_rc1::IfcBSplineSurfaceWithKnots::IfcBSplineSurfaceWithKnots(int v1_UDegree, int v2_VDegree, std::vector< std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > > v3_ControlPointsList, ::Ifc4x3_rc1::IfcBSplineSurfaceForm::Value v4_SurfaceForm, boost::logic::tribool v5_UClosed, boost::logic::tribool v6_VClosed, boost::logic::tribool v7_SelfIntersect, std::vector< int > /*[2:?]*/ v8_UMultiplicities, std::vector< int > /*[2:?]*/ v9_VMultiplicities, std::vector< double > /*[2:?]*/ v10_UKnots, std::vector< double > /*[2:?]*/ v11_VKnots, ::Ifc4x3_rc1::IfcKnotType::Value v12_KnotSpec) : IfcBSplineSurface(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_UDegree));set_attribute_value(1, (v2_VDegree));set_attribute_value(2, (v3_ControlPointsList)->generalize());set_attribute_value(3, (EnumerationReference(&::Ifc4x3_rc1::IfcBSplineSurfaceForm::Class(),(size_t)v4_SurfaceForm)));set_attribute_value(4, (v5_UClosed));set_attribute_value(5, (v6_VClosed));set_attribute_value(6, (v7_SelfIntersect));set_attribute_value(7, (v8_UMultiplicities));set_attribute_value(8, (v9_VMultiplicities));set_attribute_value(9, (v10_UKnots));set_attribute_value(10, (v11_VKnots));set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcKnotType::Class(),(size_t)v12_KnotSpec)));; populate_derived(); } // Function implementations for IfcBeam std::optional< ::Ifc4x3_rc1::IfcBeamTypeEnum::Value > Ifc4x3_rc1::IfcBeam::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBeamTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcBeam::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBeamTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcBeamTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBeam::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[75]); } const IfcParse::entity& Ifc4x3_rc1::IfcBeam::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[75]); } // Ifc4x3_rc1::IfcBeam::IfcBeam(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcBeam::IfcBeam(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcBeamTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcBeamTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcBeamStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcBeamStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[76]); } const IfcParse::entity& Ifc4x3_rc1::IfcBeamStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[76]); } // Ifc4x3_rc1::IfcBeamStandardCase::IfcBeamStandardCase(const std::weak_ptr& e) : IfcBeam(e) { } // Ifc4x3_rc1::IfcBeamStandardCase::IfcBeamStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcBeamTypeEnum::Value > v9_PredefinedType) : IfcBeam(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcBeamTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcBeamType ::Ifc4x3_rc1::IfcBeamTypeEnum::Value Ifc4x3_rc1::IfcBeamType::PredefinedType() const { return ::Ifc4x3_rc1::IfcBeamTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcBeamType::setPredefinedType(const ::Ifc4x3_rc1::IfcBeamTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcBeamTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcBeamType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[77]); } const IfcParse::entity& Ifc4x3_rc1::IfcBeamType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[77]); } // Ifc4x3_rc1::IfcBeamType::IfcBeamType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcBeamType::IfcBeamType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcBeamTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcBeamTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcBearing std::optional< ::Ifc4x3_rc1::IfcBearingTypeEnum::Value > Ifc4x3_rc1::IfcBearing::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBearingTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcBearing::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBearingTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcBearingTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBearing::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[79]); } const IfcParse::entity& Ifc4x3_rc1::IfcBearing::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[79]); } // Ifc4x3_rc1::IfcBearing::IfcBearing(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcBearing::IfcBearing(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcBearingTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcBearingTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcBearingType ::Ifc4x3_rc1::IfcBearingTypeEnum::Value Ifc4x3_rc1::IfcBearingType::PredefinedType() const { return ::Ifc4x3_rc1::IfcBearingTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcBearingType::setPredefinedType(const ::Ifc4x3_rc1::IfcBearingTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcBearingTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcBearingType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[80]); } const IfcParse::entity& Ifc4x3_rc1::IfcBearingType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[80]); } // Ifc4x3_rc1::IfcBearingType::IfcBearingType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcBearingType::IfcBearingType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcBearingTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcBearingTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcBlobTexture std::string Ifc4x3_rc1::IfcBlobTexture::RasterFormat() const { std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcBlobTexture::setRasterFormat(const std::string& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } boost::dynamic_bitset<> Ifc4x3_rc1::IfcBlobTexture::RasterCode() const { boost::dynamic_bitset<> v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcBlobTexture::setRasterCode(const boost::dynamic_bitset<>& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcBlobTexture::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[86]); } const IfcParse::entity& Ifc4x3_rc1::IfcBlobTexture::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[86]); } // Ifc4x3_rc1::IfcBlobTexture::IfcBlobTexture(const std::weak_ptr& e) : IfcSurfaceTexture(e) { } // Ifc4x3_rc1::IfcBlobTexture::IfcBlobTexture(bool v1_RepeatS, bool v2_RepeatT, std::optional< std::string > v3_Mode, ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D v4_TextureTransform, std::optional< std::vector< std::string > /*[1:?]*/ > v5_Parameter, std::string v6_RasterFormat, boost::dynamic_bitset<> v7_RasterCode) : IfcSurfaceTexture(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_RepeatS));set_attribute_value(1, (v2_RepeatT)); if (v3_Mode) {set_attribute_value(2, (*v3_Mode)); } if (v4_TextureTransform) {set_attribute_value(3, (*v4_TextureTransform)); } if (v5_Parameter) {set_attribute_value(4, (*v5_Parameter)); }set_attribute_value(5, (v6_RasterFormat));set_attribute_value(6, (v7_RasterCode));; populate_derived(); } // Function implementations for IfcBlock double Ifc4x3_rc1::IfcBlock::XLength() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcBlock::setXLength(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcBlock::YLength() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcBlock::setYLength(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcBlock::ZLength() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcBlock::setZLength(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcBlock::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[87]); } const IfcParse::entity& Ifc4x3_rc1::IfcBlock::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[87]); } // Ifc4x3_rc1::IfcBlock::IfcBlock(const std::weak_ptr& e) : IfcCsgPrimitive3D(e) { } // Ifc4x3_rc1::IfcBlock::IfcBlock(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position, double v2_XLength, double v3_YLength, double v4_ZLength) : IfcCsgPrimitive3D(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_XLength));set_attribute_value(2, (v3_YLength));set_attribute_value(3, (v4_ZLength));; populate_derived(); } // Function implementations for IfcBoiler std::optional< ::Ifc4x3_rc1::IfcBoilerTypeEnum::Value > Ifc4x3_rc1::IfcBoiler::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBoilerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcBoiler::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBoilerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcBoilerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBoiler::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[88]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoiler::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[88]); } // Ifc4x3_rc1::IfcBoiler::IfcBoiler(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcBoiler::IfcBoiler(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcBoilerTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcBoilerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcBoilerType ::Ifc4x3_rc1::IfcBoilerTypeEnum::Value Ifc4x3_rc1::IfcBoilerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcBoilerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcBoilerType::setPredefinedType(const ::Ifc4x3_rc1::IfcBoilerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcBoilerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcBoilerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[89]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoilerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[89]); } // Ifc4x3_rc1::IfcBoilerType::IfcBoilerType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcBoilerType::IfcBoilerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcBoilerTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcBoilerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcBooleanClippingResult // const IfcParse::entity& Ifc4x3_rc1::IfcBooleanClippingResult::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[92]); } const IfcParse::entity& Ifc4x3_rc1::IfcBooleanClippingResult::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[92]); } // Ifc4x3_rc1::IfcBooleanClippingResult::IfcBooleanClippingResult(const std::weak_ptr& e) : IfcBooleanResult(e) { } // Ifc4x3_rc1::IfcBooleanClippingResult::IfcBooleanClippingResult(::Ifc4x3_rc1::IfcBooleanOperator::Value v1_Operator, ::Ifc4x3_rc1::IfcBooleanOperand v2_FirstOperand, ::Ifc4x3_rc1::IfcBooleanOperand v3_SecondOperand) : IfcBooleanResult(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcBooleanOperator::Class(),(size_t)v1_Operator)));set_attribute_value(1, (v2_FirstOperand));set_attribute_value(2, (v3_SecondOperand));; populate_derived(); } // Function implementations for IfcBooleanResult ::Ifc4x3_rc1::IfcBooleanOperator::Value Ifc4x3_rc1::IfcBooleanResult::Operator() const { return ::Ifc4x3_rc1::IfcBooleanOperator::FromString(get_attribute_value(0)); } void Ifc4x3_rc1::IfcBooleanResult::setOperator(const ::Ifc4x3_rc1::IfcBooleanOperator::Value& v) { set_attribute_value(0, EnumerationReference(&::Ifc4x3_rc1::IfcBooleanOperator::Class(), (size_t) v));if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcBooleanOperand Ifc4x3_rc1::IfcBooleanResult::FirstOperand() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcBooleanOperand>(); } void Ifc4x3_rc1::IfcBooleanResult::setFirstOperand(const ::Ifc4x3_rc1::IfcBooleanOperand& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcBooleanOperand Ifc4x3_rc1::IfcBooleanResult::SecondOperand() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcBooleanOperand>(); } void Ifc4x3_rc1::IfcBooleanResult::setSecondOperand(const ::Ifc4x3_rc1::IfcBooleanOperand& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcBooleanResult::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[95]); } const IfcParse::entity& Ifc4x3_rc1::IfcBooleanResult::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[95]); } // Ifc4x3_rc1::IfcBooleanResult::IfcBooleanResult(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcBooleanResult::IfcBooleanResult(::Ifc4x3_rc1::IfcBooleanOperator::Value v1_Operator, ::Ifc4x3_rc1::IfcBooleanOperand v2_FirstOperand, ::Ifc4x3_rc1::IfcBooleanOperand v3_SecondOperand) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcBooleanOperator::Class(),(size_t)v1_Operator)));set_attribute_value(1, (v2_FirstOperand));set_attribute_value(2, (v3_SecondOperand));; populate_derived(); } // Function implementations for IfcBorehole // const IfcParse::entity& Ifc4x3_rc1::IfcBorehole::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[96]); } const IfcParse::entity& Ifc4x3_rc1::IfcBorehole::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[96]); } // Ifc4x3_rc1::IfcBorehole::IfcBorehole(const std::weak_ptr& e) : IfcGeotechnicalAssembly(e) { } // Ifc4x3_rc1::IfcBorehole::IfcBorehole(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcGeotechnicalAssembly(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcBoundaryCondition std::optional< std::string > Ifc4x3_rc1::IfcBoundaryCondition::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcBoundaryCondition::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryCondition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[97]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryCondition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[97]); } // Ifc4x3_rc1::IfcBoundaryCondition::IfcBoundaryCondition(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcBoundaryCondition::IfcBoundaryCondition(std::optional< std::string > v1_Name) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }; populate_derived(); } // Function implementations for IfcBoundaryCurve // const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[98]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[98]); } // Ifc4x3_rc1::IfcBoundaryCurve::IfcBoundaryCurve(const std::weak_ptr& e) : IfcCompositeCurveOnSurface(e) { } // Ifc4x3_rc1::IfcBoundaryCurve::IfcBoundaryCurve(std::vector< ::Ifc4x3_rc1::IfcCompositeCurveSegment > v1_Segments, boost::logic::tribool v2_SelfIntersect) : IfcCompositeCurveOnSurface(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Segments)->generalize());set_attribute_value(1, (v2_SelfIntersect));; populate_derived(); } // Function implementations for IfcBoundaryEdgeCondition ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryEdgeCondition::TranslationalStiffnessByLengthX() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryEdgeCondition::setTranslationalStiffnessByLengthX(const ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryEdgeCondition::TranslationalStiffnessByLengthY() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryEdgeCondition::setTranslationalStiffnessByLengthY(const ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryEdgeCondition::TranslationalStiffnessByLengthZ() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryEdgeCondition::setTranslationalStiffnessByLengthZ(const ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryEdgeCondition::RotationalStiffnessByLengthX() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryEdgeCondition::setRotationalStiffnessByLengthX(const ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryEdgeCondition::RotationalStiffnessByLengthY() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryEdgeCondition::setRotationalStiffnessByLengthY(const ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryEdgeCondition::RotationalStiffnessByLengthZ() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryEdgeCondition::setRotationalStiffnessByLengthZ(const ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryEdgeCondition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[99]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryEdgeCondition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[99]); } // Ifc4x3_rc1::IfcBoundaryEdgeCondition::IfcBoundaryEdgeCondition(const std::weak_ptr& e) : IfcBoundaryCondition(e) { } // Ifc4x3_rc1::IfcBoundaryEdgeCondition::IfcBoundaryEdgeCondition(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect v2_TranslationalStiffnessByLengthX, ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect v3_TranslationalStiffnessByLengthY, ::Ifc4x3_rc1::IfcModulusOfTranslationalSubgradeReactionSelect v4_TranslationalStiffnessByLengthZ, ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect v5_RotationalStiffnessByLengthX, ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect v6_RotationalStiffnessByLengthY, ::Ifc4x3_rc1::IfcModulusOfRotationalSubgradeReactionSelect v7_RotationalStiffnessByLengthZ) : IfcBoundaryCondition(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_TranslationalStiffnessByLengthX) {set_attribute_value(1, (*v2_TranslationalStiffnessByLengthX)); } if (v3_TranslationalStiffnessByLengthY) {set_attribute_value(2, (*v3_TranslationalStiffnessByLengthY)); } if (v4_TranslationalStiffnessByLengthZ) {set_attribute_value(3, (*v4_TranslationalStiffnessByLengthZ)); } if (v5_RotationalStiffnessByLengthX) {set_attribute_value(4, (*v5_RotationalStiffnessByLengthX)); } if (v6_RotationalStiffnessByLengthY) {set_attribute_value(5, (*v6_RotationalStiffnessByLengthY)); } if (v7_RotationalStiffnessByLengthZ) {set_attribute_value(6, (*v7_RotationalStiffnessByLengthZ)); }; populate_derived(); } // Function implementations for IfcBoundaryFaceCondition ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryFaceCondition::TranslationalStiffnessByAreaX() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryFaceCondition::setTranslationalStiffnessByAreaX(const ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryFaceCondition::TranslationalStiffnessByAreaY() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryFaceCondition::setTranslationalStiffnessByAreaY(const ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect Ifc4x3_rc1::IfcBoundaryFaceCondition::TranslationalStiffnessByAreaZ() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect>(); } void Ifc4x3_rc1::IfcBoundaryFaceCondition::setTranslationalStiffnessByAreaZ(const ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryFaceCondition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[100]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryFaceCondition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[100]); } // Ifc4x3_rc1::IfcBoundaryFaceCondition::IfcBoundaryFaceCondition(const std::weak_ptr& e) : IfcBoundaryCondition(e) { } // Ifc4x3_rc1::IfcBoundaryFaceCondition::IfcBoundaryFaceCondition(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect v2_TranslationalStiffnessByAreaX, ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect v3_TranslationalStiffnessByAreaY, ::Ifc4x3_rc1::IfcModulusOfSubgradeReactionSelect v4_TranslationalStiffnessByAreaZ) : IfcBoundaryCondition(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_TranslationalStiffnessByAreaX) {set_attribute_value(1, (*v2_TranslationalStiffnessByAreaX)); } if (v3_TranslationalStiffnessByAreaY) {set_attribute_value(2, (*v3_TranslationalStiffnessByAreaY)); } if (v4_TranslationalStiffnessByAreaZ) {set_attribute_value(3, (*v4_TranslationalStiffnessByAreaZ)); }; populate_derived(); } // Function implementations for IfcBoundaryNodeCondition ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect Ifc4x3_rc1::IfcBoundaryNodeCondition::TranslationalStiffnessX() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcTranslationalStiffnessSelect>(); } void Ifc4x3_rc1::IfcBoundaryNodeCondition::setTranslationalStiffnessX(const ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect Ifc4x3_rc1::IfcBoundaryNodeCondition::TranslationalStiffnessY() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcTranslationalStiffnessSelect>(); } void Ifc4x3_rc1::IfcBoundaryNodeCondition::setTranslationalStiffnessY(const ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect Ifc4x3_rc1::IfcBoundaryNodeCondition::TranslationalStiffnessZ() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcTranslationalStiffnessSelect>(); } void Ifc4x3_rc1::IfcBoundaryNodeCondition::setTranslationalStiffnessZ(const ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcRotationalStiffnessSelect Ifc4x3_rc1::IfcBoundaryNodeCondition::RotationalStiffnessX() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcRotationalStiffnessSelect{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcRotationalStiffnessSelect>(); } void Ifc4x3_rc1::IfcBoundaryNodeCondition::setRotationalStiffnessX(const ::Ifc4x3_rc1::IfcRotationalStiffnessSelect& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcRotationalStiffnessSelect Ifc4x3_rc1::IfcBoundaryNodeCondition::RotationalStiffnessY() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcRotationalStiffnessSelect{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcRotationalStiffnessSelect>(); } void Ifc4x3_rc1::IfcBoundaryNodeCondition::setRotationalStiffnessY(const ::Ifc4x3_rc1::IfcRotationalStiffnessSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcRotationalStiffnessSelect Ifc4x3_rc1::IfcBoundaryNodeCondition::RotationalStiffnessZ() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcRotationalStiffnessSelect{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcRotationalStiffnessSelect>(); } void Ifc4x3_rc1::IfcBoundaryNodeCondition::setRotationalStiffnessZ(const ::Ifc4x3_rc1::IfcRotationalStiffnessSelect& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryNodeCondition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[101]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryNodeCondition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[101]); } // Ifc4x3_rc1::IfcBoundaryNodeCondition::IfcBoundaryNodeCondition(const std::weak_ptr& e) : IfcBoundaryCondition(e) { } // Ifc4x3_rc1::IfcBoundaryNodeCondition::IfcBoundaryNodeCondition(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect v2_TranslationalStiffnessX, ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect v3_TranslationalStiffnessY, ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect v4_TranslationalStiffnessZ, ::Ifc4x3_rc1::IfcRotationalStiffnessSelect v5_RotationalStiffnessX, ::Ifc4x3_rc1::IfcRotationalStiffnessSelect v6_RotationalStiffnessY, ::Ifc4x3_rc1::IfcRotationalStiffnessSelect v7_RotationalStiffnessZ) : IfcBoundaryCondition(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_TranslationalStiffnessX) {set_attribute_value(1, (*v2_TranslationalStiffnessX)); } if (v3_TranslationalStiffnessY) {set_attribute_value(2, (*v3_TranslationalStiffnessY)); } if (v4_TranslationalStiffnessZ) {set_attribute_value(3, (*v4_TranslationalStiffnessZ)); } if (v5_RotationalStiffnessX) {set_attribute_value(4, (*v5_RotationalStiffnessX)); } if (v6_RotationalStiffnessY) {set_attribute_value(5, (*v6_RotationalStiffnessY)); } if (v7_RotationalStiffnessZ) {set_attribute_value(6, (*v7_RotationalStiffnessZ)); }; populate_derived(); } // Function implementations for IfcBoundaryNodeConditionWarping ::Ifc4x3_rc1::IfcWarpingStiffnessSelect Ifc4x3_rc1::IfcBoundaryNodeConditionWarping::WarpingStiffness() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcWarpingStiffnessSelect{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcWarpingStiffnessSelect>(); } void Ifc4x3_rc1::IfcBoundaryNodeConditionWarping::setWarpingStiffness(const ::Ifc4x3_rc1::IfcWarpingStiffnessSelect& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryNodeConditionWarping::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[102]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundaryNodeConditionWarping::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[102]); } // Ifc4x3_rc1::IfcBoundaryNodeConditionWarping::IfcBoundaryNodeConditionWarping(const std::weak_ptr& e) : IfcBoundaryNodeCondition(e) { } // Ifc4x3_rc1::IfcBoundaryNodeConditionWarping::IfcBoundaryNodeConditionWarping(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect v2_TranslationalStiffnessX, ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect v3_TranslationalStiffnessY, ::Ifc4x3_rc1::IfcTranslationalStiffnessSelect v4_TranslationalStiffnessZ, ::Ifc4x3_rc1::IfcRotationalStiffnessSelect v5_RotationalStiffnessX, ::Ifc4x3_rc1::IfcRotationalStiffnessSelect v6_RotationalStiffnessY, ::Ifc4x3_rc1::IfcRotationalStiffnessSelect v7_RotationalStiffnessZ, ::Ifc4x3_rc1::IfcWarpingStiffnessSelect v8_WarpingStiffness) : IfcBoundaryNodeCondition(const std::weak_ptr&(in_memory_attribute_storage(8))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_TranslationalStiffnessX) {set_attribute_value(1, (*v2_TranslationalStiffnessX)); } if (v3_TranslationalStiffnessY) {set_attribute_value(2, (*v3_TranslationalStiffnessY)); } if (v4_TranslationalStiffnessZ) {set_attribute_value(3, (*v4_TranslationalStiffnessZ)); } if (v5_RotationalStiffnessX) {set_attribute_value(4, (*v5_RotationalStiffnessX)); } if (v6_RotationalStiffnessY) {set_attribute_value(5, (*v6_RotationalStiffnessY)); } if (v7_RotationalStiffnessZ) {set_attribute_value(6, (*v7_RotationalStiffnessZ)); } if (v8_WarpingStiffness) {set_attribute_value(7, (*v8_WarpingStiffness)); }; populate_derived(); } // Function implementations for IfcBoundedCurve std::vector<::Ifc4x3_rc1::IfcLinearPositioningElement> Ifc4x3_rc1::IfcBoundedCurve::PositioningElement() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[615], 7)); } // const IfcParse::entity& Ifc4x3_rc1::IfcBoundedCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[103]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundedCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[103]); } // Ifc4x3_rc1::IfcBoundedCurve::IfcBoundedCurve(const std::weak_ptr& e) : IfcCurve(e) { } // Ifc4x3_rc1::IfcBoundedCurve::IfcBoundedCurve() : IfcCurve(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcBoundedSurface // const IfcParse::entity& Ifc4x3_rc1::IfcBoundedSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[104]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundedSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[104]); } // Ifc4x3_rc1::IfcBoundedSurface::IfcBoundedSurface(const std::weak_ptr& e) : IfcSurface(e) { } // Ifc4x3_rc1::IfcBoundedSurface::IfcBoundedSurface() : IfcSurface(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcBoundingBox ::Ifc4x3_rc1::IfcCartesianPoint Ifc4x3_rc1::IfcBoundingBox::Corner() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCartesianPoint>(); } void Ifc4x3_rc1::IfcBoundingBox::setCorner(const ::Ifc4x3_rc1::IfcCartesianPoint& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcBoundingBox::XDim() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcBoundingBox::setXDim(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcBoundingBox::YDim() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcBoundingBox::setYDim(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcBoundingBox::ZDim() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcBoundingBox::setZDim(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcBoundingBox::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[105]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoundingBox::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[105]); } // Ifc4x3_rc1::IfcBoundingBox::IfcBoundingBox(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcBoundingBox::IfcBoundingBox(::Ifc4x3_rc1::IfcCartesianPoint v1_Corner, double v2_XDim, double v3_YDim, double v4_ZDim) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Corner));set_attribute_value(1, (v2_XDim));set_attribute_value(2, (v3_YDim));set_attribute_value(3, (v4_ZDim));; populate_derived(); } // Function implementations for IfcBoxedHalfSpace ::Ifc4x3_rc1::IfcBoundingBox Ifc4x3_rc1::IfcBoxedHalfSpace::Enclosure() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcBoundingBox>(); } void Ifc4x3_rc1::IfcBoxedHalfSpace::setEnclosure(const ::Ifc4x3_rc1::IfcBoundingBox& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcBoxedHalfSpace::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[107]); } const IfcParse::entity& Ifc4x3_rc1::IfcBoxedHalfSpace::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[107]); } // Ifc4x3_rc1::IfcBoxedHalfSpace::IfcBoxedHalfSpace(const std::weak_ptr& e) : IfcHalfSpaceSolid(e) { } // Ifc4x3_rc1::IfcBoxedHalfSpace::IfcBoxedHalfSpace(::Ifc4x3_rc1::IfcSurface v1_BaseSurface, bool v2_AgreementFlag, ::Ifc4x3_rc1::IfcBoundingBox v3_Enclosure) : IfcHalfSpaceSolid(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_BaseSurface));set_attribute_value(1, (v2_AgreementFlag));set_attribute_value(2, (v3_Enclosure));; populate_derived(); } // Function implementations for IfcBridge std::optional< ::Ifc4x3_rc1::IfcBridgeTypeEnum::Value > Ifc4x3_rc1::IfcBridge::PredefinedType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBridgeTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcBridge::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBridgeTypeEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcBridgeTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBridge::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[108]); } const IfcParse::entity& Ifc4x3_rc1::IfcBridge::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[108]); } // Ifc4x3_rc1::IfcBridge::IfcBridge(const std::weak_ptr& e) : IfcFacility(e) { } // Ifc4x3_rc1::IfcBridge::IfcBridge(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType, std::optional< ::Ifc4x3_rc1::IfcBridgeTypeEnum::Value > v10_PredefinedType) : IfcFacility(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); } if (v10_PredefinedType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcBridgeTypeEnum::Class(),(size_t)*v10_PredefinedType))); }; populate_derived(); } // Function implementations for IfcBridgePart // const IfcParse::entity& Ifc4x3_rc1::IfcBridgePart::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[109]); } const IfcParse::entity& Ifc4x3_rc1::IfcBridgePart::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[109]); } // Ifc4x3_rc1::IfcBridgePart::IfcBridgePart(const std::weak_ptr& e) : IfcFacilityPart(e) { } // Ifc4x3_rc1::IfcBridgePart::IfcBridgePart(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType, ::Ifc4x3_rc1::IfcFacilityPartTypeSelect v10_PredefinedType, ::Ifc4x3_rc1::IfcFacilityUsageEnum::Value v11_UsageType) : IfcFacilityPart(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); }set_attribute_value(9, (v10_PredefinedType));set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcFacilityUsageEnum::Class(),(size_t)v11_UsageType)));; populate_derived(); } // Function implementations for IfcBuilding std::optional< double > Ifc4x3_rc1::IfcBuilding::ElevationOfRefHeight() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcBuilding::setElevationOfRefHeight(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcBuilding::ElevationOfTerrain() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcBuilding::setElevationOfTerrain(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } ::Ifc4x3_rc1::IfcPostalAddress Ifc4x3_rc1::IfcBuilding::BuildingAddress() const { if(get_attribute_value(11).isNull()) { return ::Ifc4x3_rc1::IfcPostalAddress{}; } return ((express::Base)(get_attribute_value(11))).as<::Ifc4x3_rc1::IfcPostalAddress>(); } void Ifc4x3_rc1::IfcBuilding::setBuildingAddress(const ::Ifc4x3_rc1::IfcPostalAddress& v) { set_attribute_value(11, v);if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcBuilding::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[118]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuilding::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[118]); } // Ifc4x3_rc1::IfcBuilding::IfcBuilding(const std::weak_ptr& e) : IfcFacility(e) { } // Ifc4x3_rc1::IfcBuilding::IfcBuilding(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType, std::optional< double > v10_ElevationOfRefHeight, std::optional< double > v11_ElevationOfTerrain, ::Ifc4x3_rc1::IfcPostalAddress v12_BuildingAddress) : IfcFacility(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); } if (v10_ElevationOfRefHeight) {set_attribute_value(9, (*v10_ElevationOfRefHeight)); } if (v11_ElevationOfTerrain) {set_attribute_value(10, (*v11_ElevationOfTerrain)); } if (v12_BuildingAddress) {set_attribute_value(11, (*v12_BuildingAddress)); }; populate_derived(); } // Function implementations for IfcBuildingElementPart std::optional< ::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value > Ifc4x3_rc1::IfcBuildingElementPart::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcBuildingElementPart::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBuildingElementPart::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[119]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuildingElementPart::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[119]); } // Ifc4x3_rc1::IfcBuildingElementPart::IfcBuildingElementPart(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcBuildingElementPart::IfcBuildingElementPart(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value > v9_PredefinedType) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcBuildingElementPartType ::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value Ifc4x3_rc1::IfcBuildingElementPartType::PredefinedType() const { return ::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcBuildingElementPartType::setPredefinedType(const ::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcBuildingElementPartType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[120]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuildingElementPartType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[120]); } // Ifc4x3_rc1::IfcBuildingElementPartType::IfcBuildingElementPartType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcBuildingElementPartType::IfcBuildingElementPartType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Value v10_PredefinedType) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcBuildingElementProxy std::optional< ::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value > Ifc4x3_rc1::IfcBuildingElementProxy::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcBuildingElementProxy::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBuildingElementProxy::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[122]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuildingElementProxy::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[122]); } // Ifc4x3_rc1::IfcBuildingElementProxy::IfcBuildingElementProxy(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcBuildingElementProxy::IfcBuildingElementProxy(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcBuildingElementProxyType ::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value Ifc4x3_rc1::IfcBuildingElementProxyType::PredefinedType() const { return ::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcBuildingElementProxyType::setPredefinedType(const ::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcBuildingElementProxyType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[123]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuildingElementProxyType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[123]); } // Ifc4x3_rc1::IfcBuildingElementProxyType::IfcBuildingElementProxyType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcBuildingElementProxyType::IfcBuildingElementProxyType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcBuildingStorey std::optional< double > Ifc4x3_rc1::IfcBuildingStorey::Elevation() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcBuildingStorey::setElevation(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBuildingStorey::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[125]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuildingStorey::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[125]); } // Ifc4x3_rc1::IfcBuildingStorey::IfcBuildingStorey(const std::weak_ptr& e) : IfcSpatialStructureElement(e) { } // Ifc4x3_rc1::IfcBuildingStorey::IfcBuildingStorey(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType, std::optional< double > v10_Elevation) : IfcSpatialStructureElement(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); } if (v10_Elevation) {set_attribute_value(9, (*v10_Elevation)); }; populate_derived(); } // Function implementations for IfcBuildingSystem std::optional< ::Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Value > Ifc4x3_rc1::IfcBuildingSystem::PredefinedType() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBuildingSystemTypeEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcBuildingSystem::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Value >& v) { if (v) {set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcBuildingSystem::LongName() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcBuildingSystem::setLongName(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBuildingSystem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[126]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuildingSystem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[126]); } // Ifc4x3_rc1::IfcBuildingSystem::IfcBuildingSystem(const std::weak_ptr& e) : IfcSystem(e) { } // Ifc4x3_rc1::IfcBuildingSystem::IfcBuildingSystem(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< ::Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Value > v6_PredefinedType, std::optional< std::string > v7_LongName) : IfcSystem(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_PredefinedType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcBuildingSystemTypeEnum::Class(),(size_t)*v6_PredefinedType))); } if (v7_LongName) {set_attribute_value(6, (*v7_LongName)); }; populate_derived(); } // Function implementations for IfcBuiltElement // const IfcParse::entity& Ifc4x3_rc1::IfcBuiltElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[128]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuiltElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[128]); } // Ifc4x3_rc1::IfcBuiltElement::IfcBuiltElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcBuiltElement::IfcBuiltElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcBuiltElementType // const IfcParse::entity& Ifc4x3_rc1::IfcBuiltElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[129]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuiltElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[129]); } // Ifc4x3_rc1::IfcBuiltElementType::IfcBuiltElementType(const std::weak_ptr& e) : IfcElementType(e) { } // Ifc4x3_rc1::IfcBuiltElementType::IfcBuiltElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcBuiltSystem std::optional< ::Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Value > Ifc4x3_rc1::IfcBuiltSystem::PredefinedType() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBuiltSystemTypeEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcBuiltSystem::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Value >& v) { if (v) {set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcBuiltSystem::LongName() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcBuiltSystem::setLongName(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBuiltSystem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[130]); } const IfcParse::entity& Ifc4x3_rc1::IfcBuiltSystem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[130]); } // Ifc4x3_rc1::IfcBuiltSystem::IfcBuiltSystem(const std::weak_ptr& e) : IfcSystem(e) { } // Ifc4x3_rc1::IfcBuiltSystem::IfcBuiltSystem(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< ::Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Value > v6_PredefinedType, std::optional< std::string > v7_LongName) : IfcSystem(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_PredefinedType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcBuiltSystemTypeEnum::Class(),(size_t)*v6_PredefinedType))); } if (v7_LongName) {set_attribute_value(6, (*v7_LongName)); }; populate_derived(); } // Function implementations for IfcBurner std::optional< ::Ifc4x3_rc1::IfcBurnerTypeEnum::Value > Ifc4x3_rc1::IfcBurner::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcBurnerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcBurner::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcBurnerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcBurnerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcBurner::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[132]); } const IfcParse::entity& Ifc4x3_rc1::IfcBurner::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[132]); } // Ifc4x3_rc1::IfcBurner::IfcBurner(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcBurner::IfcBurner(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcBurnerTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcBurnerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcBurnerType ::Ifc4x3_rc1::IfcBurnerTypeEnum::Value Ifc4x3_rc1::IfcBurnerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcBurnerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcBurnerType::setPredefinedType(const ::Ifc4x3_rc1::IfcBurnerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcBurnerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcBurnerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[133]); } const IfcParse::entity& Ifc4x3_rc1::IfcBurnerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[133]); } // Ifc4x3_rc1::IfcBurnerType::IfcBurnerType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcBurnerType::IfcBurnerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcBurnerTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcBurnerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCShapeProfileDef double Ifc4x3_rc1::IfcCShapeProfileDef::Depth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcCShapeProfileDef::setDepth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcCShapeProfileDef::Width() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcCShapeProfileDef::setWidth(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcCShapeProfileDef::WallThickness() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcCShapeProfileDef::setWallThickness(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcCShapeProfileDef::Girth() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcCShapeProfileDef::setGirth(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< double > Ifc4x3_rc1::IfcCShapeProfileDef::InternalFilletRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcCShapeProfileDef::setInternalFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCShapeProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[270]); } const IfcParse::entity& Ifc4x3_rc1::IfcCShapeProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[270]); } // Ifc4x3_rc1::IfcCShapeProfileDef::IfcCShapeProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcCShapeProfileDef::IfcCShapeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_Depth, double v5_Width, double v6_WallThickness, double v7_Girth, std::optional< double > v8_InternalFilletRadius) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_Depth));set_attribute_value(4, (v5_Width));set_attribute_value(5, (v6_WallThickness));set_attribute_value(6, (v7_Girth)); if (v8_InternalFilletRadius) {set_attribute_value(7, (*v8_InternalFilletRadius)); }; populate_derived(); } // Function implementations for IfcCableCarrierFitting std::optional< ::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value > Ifc4x3_rc1::IfcCableCarrierFitting::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCableCarrierFitting::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCableCarrierFitting::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[135]); } const IfcParse::entity& Ifc4x3_rc1::IfcCableCarrierFitting::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[135]); } // Ifc4x3_rc1::IfcCableCarrierFitting::IfcCableCarrierFitting(const std::weak_ptr& e) : IfcFlowFitting(e) { } // Ifc4x3_rc1::IfcCableCarrierFitting::IfcCableCarrierFitting(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value > v9_PredefinedType) : IfcFlowFitting(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCableCarrierFittingType ::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value Ifc4x3_rc1::IfcCableCarrierFittingType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCableCarrierFittingType::setPredefinedType(const ::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCableCarrierFittingType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[136]); } const IfcParse::entity& Ifc4x3_rc1::IfcCableCarrierFittingType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[136]); } // Ifc4x3_rc1::IfcCableCarrierFittingType::IfcCableCarrierFittingType(const std::weak_ptr& e) : IfcFlowFittingType(e) { } // Ifc4x3_rc1::IfcCableCarrierFittingType::IfcCableCarrierFittingType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Value v10_PredefinedType) : IfcFlowFittingType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCableCarrierSegment std::optional< ::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value > Ifc4x3_rc1::IfcCableCarrierSegment::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCableCarrierSegment::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCableCarrierSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[138]); } const IfcParse::entity& Ifc4x3_rc1::IfcCableCarrierSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[138]); } // Ifc4x3_rc1::IfcCableCarrierSegment::IfcCableCarrierSegment(const std::weak_ptr& e) : IfcFlowSegment(e) { } // Ifc4x3_rc1::IfcCableCarrierSegment::IfcCableCarrierSegment(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value > v9_PredefinedType) : IfcFlowSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCableCarrierSegmentType ::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value Ifc4x3_rc1::IfcCableCarrierSegmentType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCableCarrierSegmentType::setPredefinedType(const ::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCableCarrierSegmentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[139]); } const IfcParse::entity& Ifc4x3_rc1::IfcCableCarrierSegmentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[139]); } // Ifc4x3_rc1::IfcCableCarrierSegmentType::IfcCableCarrierSegmentType(const std::weak_ptr& e) : IfcFlowSegmentType(e) { } // Ifc4x3_rc1::IfcCableCarrierSegmentType::IfcCableCarrierSegmentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Value v10_PredefinedType) : IfcFlowSegmentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCableFitting std::optional< ::Ifc4x3_rc1::IfcCableFittingTypeEnum::Value > Ifc4x3_rc1::IfcCableFitting::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCableFittingTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCableFitting::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCableFittingTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCableFittingTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCableFitting::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[141]); } const IfcParse::entity& Ifc4x3_rc1::IfcCableFitting::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[141]); } // Ifc4x3_rc1::IfcCableFitting::IfcCableFitting(const std::weak_ptr& e) : IfcFlowFitting(e) { } // Ifc4x3_rc1::IfcCableFitting::IfcCableFitting(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCableFittingTypeEnum::Value > v9_PredefinedType) : IfcFlowFitting(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCableFittingTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCableFittingType ::Ifc4x3_rc1::IfcCableFittingTypeEnum::Value Ifc4x3_rc1::IfcCableFittingType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCableFittingTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCableFittingType::setPredefinedType(const ::Ifc4x3_rc1::IfcCableFittingTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCableFittingTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCableFittingType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[142]); } const IfcParse::entity& Ifc4x3_rc1::IfcCableFittingType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[142]); } // Ifc4x3_rc1::IfcCableFittingType::IfcCableFittingType(const std::weak_ptr& e) : IfcFlowFittingType(e) { } // Ifc4x3_rc1::IfcCableFittingType::IfcCableFittingType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCableFittingTypeEnum::Value v10_PredefinedType) : IfcFlowFittingType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCableFittingTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCableSegment std::optional< ::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value > Ifc4x3_rc1::IfcCableSegment::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCableSegmentTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCableSegment::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCableSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[144]); } const IfcParse::entity& Ifc4x3_rc1::IfcCableSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[144]); } // Ifc4x3_rc1::IfcCableSegment::IfcCableSegment(const std::weak_ptr& e) : IfcFlowSegment(e) { } // Ifc4x3_rc1::IfcCableSegment::IfcCableSegment(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value > v9_PredefinedType) : IfcFlowSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCableSegmentType ::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value Ifc4x3_rc1::IfcCableSegmentType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCableSegmentTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCableSegmentType::setPredefinedType(const ::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCableSegmentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[145]); } const IfcParse::entity& Ifc4x3_rc1::IfcCableSegmentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[145]); } // Ifc4x3_rc1::IfcCableSegmentType::IfcCableSegmentType(const std::weak_ptr& e) : IfcFlowSegmentType(e) { } // Ifc4x3_rc1::IfcCableSegmentType::IfcCableSegmentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Value v10_PredefinedType) : IfcFlowSegmentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCableSegmentTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCaissonFoundation std::optional< ::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value > Ifc4x3_rc1::IfcCaissonFoundation::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCaissonFoundation::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCaissonFoundation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[147]); } const IfcParse::entity& Ifc4x3_rc1::IfcCaissonFoundation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[147]); } // Ifc4x3_rc1::IfcCaissonFoundation::IfcCaissonFoundation(const std::weak_ptr& e) : IfcDeepFoundation(e) { } // Ifc4x3_rc1::IfcCaissonFoundation::IfcCaissonFoundation(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value > v9_PredefinedType) : IfcDeepFoundation(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCaissonFoundationType ::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value Ifc4x3_rc1::IfcCaissonFoundationType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCaissonFoundationType::setPredefinedType(const ::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCaissonFoundationType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[148]); } const IfcParse::entity& Ifc4x3_rc1::IfcCaissonFoundationType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[148]); } // Ifc4x3_rc1::IfcCaissonFoundationType::IfcCaissonFoundationType(const std::weak_ptr& e) : IfcDeepFoundationType(e) { } // Ifc4x3_rc1::IfcCaissonFoundationType::IfcCaissonFoundationType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Value v10_PredefinedType) : IfcDeepFoundationType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCartesianPoint std::vector< double > /*[1:3]*/ Ifc4x3_rc1::IfcCartesianPoint::Coordinates() const { std::vector< double > /*[1:3]*/ v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcCartesianPoint::setCoordinates(const std::vector< double > /*[1:3]*/& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianPoint::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[151]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianPoint::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[151]); } // Ifc4x3_rc1::IfcCartesianPoint::IfcCartesianPoint(const std::weak_ptr& e) : IfcPoint(e) { } // Ifc4x3_rc1::IfcCartesianPoint::IfcCartesianPoint(std::vector< double > /*[1:3]*/ v1_Coordinates) : IfcPoint(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Coordinates));; populate_derived(); } // Function implementations for IfcCartesianPointList // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianPointList::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[152]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianPointList::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[152]); } // Ifc4x3_rc1::IfcCartesianPointList::IfcCartesianPointList(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcCartesianPointList::IfcCartesianPointList() : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcCartesianPointList2D std::vector< std::vector< double > > Ifc4x3_rc1::IfcCartesianPointList2D::CoordList() const { std::vector< std::vector< double > > v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcCartesianPointList2D::setCoordList(const std::vector< std::vector< double > >& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcCartesianPointList2D::TagList() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCartesianPointList2D::setTagList(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianPointList2D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[153]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianPointList2D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[153]); } // Ifc4x3_rc1::IfcCartesianPointList2D::IfcCartesianPointList2D(const std::weak_ptr& e) : IfcCartesianPointList(e) { } // Ifc4x3_rc1::IfcCartesianPointList2D::IfcCartesianPointList2D(std::vector< std::vector< double > > v1_CoordList, std::optional< std::vector< std::string > /*[1:?]*/ > v2_TagList) : IfcCartesianPointList(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_CoordList)); if (v2_TagList) {set_attribute_value(1, (*v2_TagList)); }; populate_derived(); } // Function implementations for IfcCartesianPointList3D std::vector< std::vector< double > > Ifc4x3_rc1::IfcCartesianPointList3D::CoordList() const { std::vector< std::vector< double > > v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcCartesianPointList3D::setCoordList(const std::vector< std::vector< double > >& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcCartesianPointList3D::TagList() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCartesianPointList3D::setTagList(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianPointList3D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[154]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianPointList3D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[154]); } // Ifc4x3_rc1::IfcCartesianPointList3D::IfcCartesianPointList3D(const std::weak_ptr& e) : IfcCartesianPointList(e) { } // Ifc4x3_rc1::IfcCartesianPointList3D::IfcCartesianPointList3D(std::vector< std::vector< double > > v1_CoordList, std::optional< std::vector< std::string > /*[1:?]*/ > v2_TagList) : IfcCartesianPointList(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_CoordList)); if (v2_TagList) {set_attribute_value(1, (*v2_TagList)); }; populate_derived(); } // Function implementations for IfcCartesianTransformationOperator ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcCartesianTransformationOperator::Axis1() const { if(get_attribute_value(0).isNull()) { return ::Ifc4x3_rc1::IfcDirection{}; } return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcCartesianTransformationOperator::setAxis1(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcCartesianTransformationOperator::Axis2() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcDirection{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcCartesianTransformationOperator::setAxis2(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcCartesianPoint Ifc4x3_rc1::IfcCartesianTransformationOperator::LocalOrigin() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcCartesianPoint>(); } void Ifc4x3_rc1::IfcCartesianTransformationOperator::setLocalOrigin(const ::Ifc4x3_rc1::IfcCartesianPoint& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::optional< double > Ifc4x3_rc1::IfcCartesianTransformationOperator::Scale() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcCartesianTransformationOperator::setScale(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[155]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[155]); } // Ifc4x3_rc1::IfcCartesianTransformationOperator::IfcCartesianTransformationOperator(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcCartesianTransformationOperator::IfcCartesianTransformationOperator(::Ifc4x3_rc1::IfcDirection v1_Axis1, ::Ifc4x3_rc1::IfcDirection v2_Axis2, ::Ifc4x3_rc1::IfcCartesianPoint v3_LocalOrigin, std::optional< double > v4_Scale) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Axis1) {set_attribute_value(0, (*v1_Axis1)); } if (v2_Axis2) {set_attribute_value(1, (*v2_Axis2)); }set_attribute_value(2, (v3_LocalOrigin)); if (v4_Scale) {set_attribute_value(3, (*v4_Scale)); }; populate_derived(); } // Function implementations for IfcCartesianTransformationOperator2D // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator2D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[156]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator2D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[156]); } // Ifc4x3_rc1::IfcCartesianTransformationOperator2D::IfcCartesianTransformationOperator2D(const std::weak_ptr& e) : IfcCartesianTransformationOperator(e) { } // Ifc4x3_rc1::IfcCartesianTransformationOperator2D::IfcCartesianTransformationOperator2D(::Ifc4x3_rc1::IfcDirection v1_Axis1, ::Ifc4x3_rc1::IfcDirection v2_Axis2, ::Ifc4x3_rc1::IfcCartesianPoint v3_LocalOrigin, std::optional< double > v4_Scale) : IfcCartesianTransformationOperator(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Axis1) {set_attribute_value(0, (*v1_Axis1)); } if (v2_Axis2) {set_attribute_value(1, (*v2_Axis2)); }set_attribute_value(2, (v3_LocalOrigin)); if (v4_Scale) {set_attribute_value(3, (*v4_Scale)); }; populate_derived(); } // Function implementations for IfcCartesianTransformationOperator2DnonUniform std::optional< double > Ifc4x3_rc1::IfcCartesianTransformationOperator2DnonUniform::Scale2() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcCartesianTransformationOperator2DnonUniform::setScale2(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator2DnonUniform::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[157]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator2DnonUniform::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[157]); } // Ifc4x3_rc1::IfcCartesianTransformationOperator2DnonUniform::IfcCartesianTransformationOperator2DnonUniform(const std::weak_ptr& e) : IfcCartesianTransformationOperator2D(e) { } // Ifc4x3_rc1::IfcCartesianTransformationOperator2DnonUniform::IfcCartesianTransformationOperator2DnonUniform(::Ifc4x3_rc1::IfcDirection v1_Axis1, ::Ifc4x3_rc1::IfcDirection v2_Axis2, ::Ifc4x3_rc1::IfcCartesianPoint v3_LocalOrigin, std::optional< double > v4_Scale, std::optional< double > v5_Scale2) : IfcCartesianTransformationOperator2D(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Axis1) {set_attribute_value(0, (*v1_Axis1)); } if (v2_Axis2) {set_attribute_value(1, (*v2_Axis2)); }set_attribute_value(2, (v3_LocalOrigin)); if (v4_Scale) {set_attribute_value(3, (*v4_Scale)); } if (v5_Scale2) {set_attribute_value(4, (*v5_Scale2)); }; populate_derived(); } // Function implementations for IfcCartesianTransformationOperator3D ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcCartesianTransformationOperator3D::Axis3() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcDirection{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcCartesianTransformationOperator3D::setAxis3(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator3D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[158]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator3D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[158]); } // Ifc4x3_rc1::IfcCartesianTransformationOperator3D::IfcCartesianTransformationOperator3D(const std::weak_ptr& e) : IfcCartesianTransformationOperator(e) { } // Ifc4x3_rc1::IfcCartesianTransformationOperator3D::IfcCartesianTransformationOperator3D(::Ifc4x3_rc1::IfcDirection v1_Axis1, ::Ifc4x3_rc1::IfcDirection v2_Axis2, ::Ifc4x3_rc1::IfcCartesianPoint v3_LocalOrigin, std::optional< double > v4_Scale, ::Ifc4x3_rc1::IfcDirection v5_Axis3) : IfcCartesianTransformationOperator(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Axis1) {set_attribute_value(0, (*v1_Axis1)); } if (v2_Axis2) {set_attribute_value(1, (*v2_Axis2)); }set_attribute_value(2, (v3_LocalOrigin)); if (v4_Scale) {set_attribute_value(3, (*v4_Scale)); } if (v5_Axis3) {set_attribute_value(4, (*v5_Axis3)); }; populate_derived(); } // Function implementations for IfcCartesianTransformationOperator3DnonUniform std::optional< double > Ifc4x3_rc1::IfcCartesianTransformationOperator3DnonUniform::Scale2() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcCartesianTransformationOperator3DnonUniform::setScale2(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< double > Ifc4x3_rc1::IfcCartesianTransformationOperator3DnonUniform::Scale3() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcCartesianTransformationOperator3DnonUniform::setScale3(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator3DnonUniform::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[159]); } const IfcParse::entity& Ifc4x3_rc1::IfcCartesianTransformationOperator3DnonUniform::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[159]); } // Ifc4x3_rc1::IfcCartesianTransformationOperator3DnonUniform::IfcCartesianTransformationOperator3DnonUniform(const std::weak_ptr& e) : IfcCartesianTransformationOperator3D(e) { } // Ifc4x3_rc1::IfcCartesianTransformationOperator3DnonUniform::IfcCartesianTransformationOperator3DnonUniform(::Ifc4x3_rc1::IfcDirection v1_Axis1, ::Ifc4x3_rc1::IfcDirection v2_Axis2, ::Ifc4x3_rc1::IfcCartesianPoint v3_LocalOrigin, std::optional< double > v4_Scale, ::Ifc4x3_rc1::IfcDirection v5_Axis3, std::optional< double > v6_Scale2, std::optional< double > v7_Scale3) : IfcCartesianTransformationOperator3D(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Axis1) {set_attribute_value(0, (*v1_Axis1)); } if (v2_Axis2) {set_attribute_value(1, (*v2_Axis2)); }set_attribute_value(2, (v3_LocalOrigin)); if (v4_Scale) {set_attribute_value(3, (*v4_Scale)); } if (v5_Axis3) {set_attribute_value(4, (*v5_Axis3)); } if (v6_Scale2) {set_attribute_value(5, (*v6_Scale2)); } if (v7_Scale3) {set_attribute_value(6, (*v7_Scale3)); }; populate_derived(); } // Function implementations for IfcCenterLineProfileDef double Ifc4x3_rc1::IfcCenterLineProfileDef::Thickness() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcCenterLineProfileDef::setThickness(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcCenterLineProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[160]); } const IfcParse::entity& Ifc4x3_rc1::IfcCenterLineProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[160]); } // Ifc4x3_rc1::IfcCenterLineProfileDef::IfcCenterLineProfileDef(const std::weak_ptr& e) : IfcArbitraryOpenProfileDef(e) { } // Ifc4x3_rc1::IfcCenterLineProfileDef::IfcCenterLineProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcBoundedCurve v3_Curve, double v4_Thickness) : IfcArbitraryOpenProfileDef(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }set_attribute_value(2, (v3_Curve));set_attribute_value(3, (v4_Thickness));; populate_derived(); } // Function implementations for IfcChiller std::optional< ::Ifc4x3_rc1::IfcChillerTypeEnum::Value > Ifc4x3_rc1::IfcChiller::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcChillerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcChiller::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcChillerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcChillerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcChiller::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[162]); } const IfcParse::entity& Ifc4x3_rc1::IfcChiller::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[162]); } // Ifc4x3_rc1::IfcChiller::IfcChiller(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcChiller::IfcChiller(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcChillerTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcChillerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcChillerType ::Ifc4x3_rc1::IfcChillerTypeEnum::Value Ifc4x3_rc1::IfcChillerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcChillerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcChillerType::setPredefinedType(const ::Ifc4x3_rc1::IfcChillerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcChillerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcChillerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[163]); } const IfcParse::entity& Ifc4x3_rc1::IfcChillerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[163]); } // Ifc4x3_rc1::IfcChillerType::IfcChillerType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcChillerType::IfcChillerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcChillerTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcChillerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcChimney std::optional< ::Ifc4x3_rc1::IfcChimneyTypeEnum::Value > Ifc4x3_rc1::IfcChimney::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcChimneyTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcChimney::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcChimneyTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcChimneyTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcChimney::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[165]); } const IfcParse::entity& Ifc4x3_rc1::IfcChimney::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[165]); } // Ifc4x3_rc1::IfcChimney::IfcChimney(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcChimney::IfcChimney(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcChimneyTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcChimneyTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcChimneyType ::Ifc4x3_rc1::IfcChimneyTypeEnum::Value Ifc4x3_rc1::IfcChimneyType::PredefinedType() const { return ::Ifc4x3_rc1::IfcChimneyTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcChimneyType::setPredefinedType(const ::Ifc4x3_rc1::IfcChimneyTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcChimneyTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcChimneyType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[166]); } const IfcParse::entity& Ifc4x3_rc1::IfcChimneyType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[166]); } // Ifc4x3_rc1::IfcChimneyType::IfcChimneyType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcChimneyType::IfcChimneyType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcChimneyTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcChimneyTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCircle double Ifc4x3_rc1::IfcCircle::Radius() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCircle::setRadius(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcCircle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[168]); } const IfcParse::entity& Ifc4x3_rc1::IfcCircle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[168]); } // Ifc4x3_rc1::IfcCircle::IfcCircle(const std::weak_ptr& e) : IfcConic(e) { } // Ifc4x3_rc1::IfcCircle::IfcCircle(::Ifc4x3_rc1::IfcAxis2Placement v1_Position, double v2_Radius) : IfcConic(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_Radius));; populate_derived(); } // Function implementations for IfcCircleHollowProfileDef double Ifc4x3_rc1::IfcCircleHollowProfileDef::WallThickness() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcCircleHollowProfileDef::setWallThickness(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcCircleHollowProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[169]); } const IfcParse::entity& Ifc4x3_rc1::IfcCircleHollowProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[169]); } // Ifc4x3_rc1::IfcCircleHollowProfileDef::IfcCircleHollowProfileDef(const std::weak_ptr& e) : IfcCircleProfileDef(e) { } // Ifc4x3_rc1::IfcCircleHollowProfileDef::IfcCircleHollowProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_Radius, double v5_WallThickness) : IfcCircleProfileDef(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_Radius));set_attribute_value(4, (v5_WallThickness));; populate_derived(); } // Function implementations for IfcCircleProfileDef double Ifc4x3_rc1::IfcCircleProfileDef::Radius() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcCircleProfileDef::setRadius(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcCircleProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[170]); } const IfcParse::entity& Ifc4x3_rc1::IfcCircleProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[170]); } // Ifc4x3_rc1::IfcCircleProfileDef::IfcCircleProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcCircleProfileDef::IfcCircleProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_Radius) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_Radius));; populate_derived(); } // Function implementations for IfcCircularArcSegment2D double Ifc4x3_rc1::IfcCircularArcSegment2D::Radius() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcCircularArcSegment2D::setRadius(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } bool Ifc4x3_rc1::IfcCircularArcSegment2D::IsCCW() const { bool v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcCircularArcSegment2D::setIsCCW(const bool& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcCircularArcSegment2D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[171]); } const IfcParse::entity& Ifc4x3_rc1::IfcCircularArcSegment2D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[171]); } // Ifc4x3_rc1::IfcCircularArcSegment2D::IfcCircularArcSegment2D(const std::weak_ptr& e) : IfcCurveSegment2D(e) { } // Ifc4x3_rc1::IfcCircularArcSegment2D::IfcCircularArcSegment2D(::Ifc4x3_rc1::IfcCartesianPoint v1_StartPoint, double v2_StartDirection, double v3_SegmentLength, double v4_Radius, bool v5_IsCCW) : IfcCurveSegment2D(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_StartPoint));set_attribute_value(1, (v2_StartDirection));set_attribute_value(2, (v3_SegmentLength));set_attribute_value(3, (v4_Radius));set_attribute_value(4, (v5_IsCCW));; populate_derived(); } // Function implementations for IfcCivilElement // const IfcParse::entity& Ifc4x3_rc1::IfcCivilElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[172]); } const IfcParse::entity& Ifc4x3_rc1::IfcCivilElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[172]); } // Ifc4x3_rc1::IfcCivilElement::IfcCivilElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcCivilElement::IfcCivilElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcCivilElementType // const IfcParse::entity& Ifc4x3_rc1::IfcCivilElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[173]); } const IfcParse::entity& Ifc4x3_rc1::IfcCivilElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[173]); } // Ifc4x3_rc1::IfcCivilElementType::IfcCivilElementType(const std::weak_ptr& e) : IfcElementType(e) { } // Ifc4x3_rc1::IfcCivilElementType::IfcCivilElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcClassification std::optional< std::string > Ifc4x3_rc1::IfcClassification::Source() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcClassification::setSource(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcClassification::Edition() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcClassification::setEdition(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcClassification::EditionDate() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcClassification::setEditionDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::string Ifc4x3_rc1::IfcClassification::Name() const { std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcClassification::setName(const std::string& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcClassification::Description() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcClassification::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcClassification::Location() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcClassification::setLocation(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcClassification::ReferenceTokens() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcClassification::setReferenceTokens(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::vector<::Ifc4x3_rc1::IfcRelAssociatesClassification> Ifc4x3_rc1::IfcClassification::ClassificationForObjects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[921], 5)); } std::vector<::Ifc4x3_rc1::IfcClassificationReference> Ifc4x3_rc1::IfcClassification::HasReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[175], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcClassification::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[174]); } const IfcParse::entity& Ifc4x3_rc1::IfcClassification::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[174]); } // Ifc4x3_rc1::IfcClassification::IfcClassification(const std::weak_ptr& e) : IfcExternalInformation(e) { } // Ifc4x3_rc1::IfcClassification::IfcClassification(std::optional< std::string > v1_Source, std::optional< std::string > v2_Edition, std::optional< std::string > v3_EditionDate, std::string v4_Name, std::optional< std::string > v5_Description, std::optional< std::string > v6_Location, std::optional< std::vector< std::string > /*[1:?]*/ > v7_ReferenceTokens) : IfcExternalInformation(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Source) {set_attribute_value(0, (*v1_Source)); } if (v2_Edition) {set_attribute_value(1, (*v2_Edition)); } if (v3_EditionDate) {set_attribute_value(2, (*v3_EditionDate)); }set_attribute_value(3, (v4_Name)); if (v5_Description) {set_attribute_value(4, (*v5_Description)); } if (v6_Location) {set_attribute_value(5, (*v6_Location)); } if (v7_ReferenceTokens) {set_attribute_value(6, (*v7_ReferenceTokens)); }; populate_derived(); } // Function implementations for IfcClassificationReference ::Ifc4x3_rc1::IfcClassificationReferenceSelect Ifc4x3_rc1::IfcClassificationReference::ReferencedSource() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcClassificationReferenceSelect{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcClassificationReferenceSelect>(); } void Ifc4x3_rc1::IfcClassificationReference::setReferencedSource(const ::Ifc4x3_rc1::IfcClassificationReferenceSelect& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcClassificationReference::Description() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcClassificationReference::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcClassificationReference::Sort() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcClassificationReference::setSort(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::vector<::Ifc4x3_rc1::IfcRelAssociatesClassification> Ifc4x3_rc1::IfcClassificationReference::ClassificationRefForObjects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[921], 5)); } std::vector<::Ifc4x3_rc1::IfcClassificationReference> Ifc4x3_rc1::IfcClassificationReference::HasReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[175], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcClassificationReference::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[175]); } const IfcParse::entity& Ifc4x3_rc1::IfcClassificationReference::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[175]); } // Ifc4x3_rc1::IfcClassificationReference::IfcClassificationReference(const std::weak_ptr& e) : IfcExternalReference(e) { } // Ifc4x3_rc1::IfcClassificationReference::IfcClassificationReference(std::optional< std::string > v1_Location, std::optional< std::string > v2_Identification, std::optional< std::string > v3_Name, ::Ifc4x3_rc1::IfcClassificationReferenceSelect v4_ReferencedSource, std::optional< std::string > v5_Description, std::optional< std::string > v6_Sort) : IfcExternalReference(const std::weak_ptr&(in_memory_attribute_storage(6))) { if (v1_Location) {set_attribute_value(0, (*v1_Location)); } if (v2_Identification) {set_attribute_value(1, (*v2_Identification)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_ReferencedSource) {set_attribute_value(3, (*v4_ReferencedSource)); } if (v5_Description) {set_attribute_value(4, (*v5_Description)); } if (v6_Sort) {set_attribute_value(5, (*v6_Sort)); }; populate_derived(); } // Function implementations for IfcClosedShell // const IfcParse::entity& Ifc4x3_rc1::IfcClosedShell::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[178]); } const IfcParse::entity& Ifc4x3_rc1::IfcClosedShell::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[178]); } // Ifc4x3_rc1::IfcClosedShell::IfcClosedShell(const std::weak_ptr& e) : IfcConnectedFaceSet(e) { } // Ifc4x3_rc1::IfcClosedShell::IfcClosedShell(std::vector< ::Ifc4x3_rc1::IfcFace > v1_CfsFaces) : IfcConnectedFaceSet(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_CfsFaces)->generalize());; populate_derived(); } // Function implementations for IfcCoil std::optional< ::Ifc4x3_rc1::IfcCoilTypeEnum::Value > Ifc4x3_rc1::IfcCoil::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCoilTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCoil::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCoilTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCoilTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCoil::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[179]); } const IfcParse::entity& Ifc4x3_rc1::IfcCoil::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[179]); } // Ifc4x3_rc1::IfcCoil::IfcCoil(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcCoil::IfcCoil(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCoilTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCoilTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCoilType ::Ifc4x3_rc1::IfcCoilTypeEnum::Value Ifc4x3_rc1::IfcCoilType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCoilTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCoilType::setPredefinedType(const ::Ifc4x3_rc1::IfcCoilTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCoilTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCoilType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[180]); } const IfcParse::entity& Ifc4x3_rc1::IfcCoilType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[180]); } // Ifc4x3_rc1::IfcCoilType::IfcCoilType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcCoilType::IfcCoilType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCoilTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCoilTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcColourRgb double Ifc4x3_rc1::IfcColourRgb::Red() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcColourRgb::setRed(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcColourRgb::Green() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcColourRgb::setGreen(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcColourRgb::Blue() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcColourRgb::setBlue(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcColourRgb::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[184]); } const IfcParse::entity& Ifc4x3_rc1::IfcColourRgb::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[184]); } // Ifc4x3_rc1::IfcColourRgb::IfcColourRgb(const std::weak_ptr& e) : IfcColourSpecification(e) { } // Ifc4x3_rc1::IfcColourRgb::IfcColourRgb(std::optional< std::string > v1_Name, double v2_Red, double v3_Green, double v4_Blue) : IfcColourSpecification(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_Red));set_attribute_value(2, (v3_Green));set_attribute_value(3, (v4_Blue));; populate_derived(); } // Function implementations for IfcColourRgbList std::vector< std::vector< double > > Ifc4x3_rc1::IfcColourRgbList::ColourList() const { std::vector< std::vector< double > > v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcColourRgbList::setColourList(const std::vector< std::vector< double > >& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcColourRgbList::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[185]); } const IfcParse::entity& Ifc4x3_rc1::IfcColourRgbList::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[185]); } // Ifc4x3_rc1::IfcColourRgbList::IfcColourRgbList(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcColourRgbList::IfcColourRgbList(std::vector< std::vector< double > > v1_ColourList) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_ColourList));; populate_derived(); } // Function implementations for IfcColourSpecification std::optional< std::string > Ifc4x3_rc1::IfcColourSpecification::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcColourSpecification::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } // const IfcParse::entity& Ifc4x3_rc1::IfcColourSpecification::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[186]); } const IfcParse::entity& Ifc4x3_rc1::IfcColourSpecification::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[186]); } // Ifc4x3_rc1::IfcColourSpecification::IfcColourSpecification(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcColourSpecification::IfcColourSpecification(std::optional< std::string > v1_Name) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }; populate_derived(); } // Function implementations for IfcColumn std::optional< ::Ifc4x3_rc1::IfcColumnTypeEnum::Value > Ifc4x3_rc1::IfcColumn::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcColumnTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcColumn::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcColumnTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcColumnTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcColumn::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[187]); } const IfcParse::entity& Ifc4x3_rc1::IfcColumn::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[187]); } // Ifc4x3_rc1::IfcColumn::IfcColumn(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcColumn::IfcColumn(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcColumnTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcColumnTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcColumnStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcColumnStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[188]); } const IfcParse::entity& Ifc4x3_rc1::IfcColumnStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[188]); } // Ifc4x3_rc1::IfcColumnStandardCase::IfcColumnStandardCase(const std::weak_ptr& e) : IfcColumn(e) { } // Ifc4x3_rc1::IfcColumnStandardCase::IfcColumnStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcColumnTypeEnum::Value > v9_PredefinedType) : IfcColumn(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcColumnTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcColumnType ::Ifc4x3_rc1::IfcColumnTypeEnum::Value Ifc4x3_rc1::IfcColumnType::PredefinedType() const { return ::Ifc4x3_rc1::IfcColumnTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcColumnType::setPredefinedType(const ::Ifc4x3_rc1::IfcColumnTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcColumnTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcColumnType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[189]); } const IfcParse::entity& Ifc4x3_rc1::IfcColumnType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[189]); } // Ifc4x3_rc1::IfcColumnType::IfcColumnType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcColumnType::IfcColumnType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcColumnTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcColumnTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCommunicationsAppliance std::optional< ::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value > Ifc4x3_rc1::IfcCommunicationsAppliance::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCommunicationsAppliance::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCommunicationsAppliance::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[191]); } const IfcParse::entity& Ifc4x3_rc1::IfcCommunicationsAppliance::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[191]); } // Ifc4x3_rc1::IfcCommunicationsAppliance::IfcCommunicationsAppliance(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcCommunicationsAppliance::IfcCommunicationsAppliance(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCommunicationsApplianceType ::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value Ifc4x3_rc1::IfcCommunicationsApplianceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCommunicationsApplianceType::setPredefinedType(const ::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCommunicationsApplianceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[192]); } const IfcParse::entity& Ifc4x3_rc1::IfcCommunicationsApplianceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[192]); } // Ifc4x3_rc1::IfcCommunicationsApplianceType::IfcCommunicationsApplianceType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcCommunicationsApplianceType::IfcCommunicationsApplianceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcComplexProperty std::string Ifc4x3_rc1::IfcComplexProperty::UsageName() const { std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcComplexProperty::setUsageName(const std::string& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< ::Ifc4x3_rc1::IfcProperty > Ifc4x3_rc1::IfcComplexProperty::HasProperties() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcProperty>(es); } void Ifc4x3_rc1::IfcComplexProperty::setHasProperties(const std::vector< ::Ifc4x3_rc1::IfcProperty >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcComplexProperty::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[195]); } const IfcParse::entity& Ifc4x3_rc1::IfcComplexProperty::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[195]); } // Ifc4x3_rc1::IfcComplexProperty::IfcComplexProperty(const std::weak_ptr& e) : IfcProperty(e) { } // Ifc4x3_rc1::IfcComplexProperty::IfcComplexProperty(std::string v1_Name, std::optional< std::string > v2_Description, std::string v3_UsageName, std::vector< ::Ifc4x3_rc1::IfcProperty > v4_HasProperties) : IfcProperty(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_UsageName));set_attribute_value(3, (v4_HasProperties)->generalize());; populate_derived(); } // Function implementations for IfcComplexPropertyTemplate std::optional< std::string > Ifc4x3_rc1::IfcComplexPropertyTemplate::UsageName() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcComplexPropertyTemplate::setUsageName(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< ::Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Value > Ifc4x3_rc1::IfcComplexPropertyTemplate::TemplateType() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcComplexPropertyTemplate::setTemplateType(const std::optional< ::Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Value >& v) { if (v) {set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(5);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertyTemplate > > Ifc4x3_rc1::IfcComplexPropertyTemplate::HasPropertyTemplates() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(6); return cast_vector<::Ifc4x3_rc1::IfcPropertyTemplate>(es); } void Ifc4x3_rc1::IfcComplexPropertyTemplate::setHasPropertyTemplates(const std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertyTemplate > >& v) { if (v) {set_attribute_value(6, cast_vector(*v));} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcComplexPropertyTemplate::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[196]); } const IfcParse::entity& Ifc4x3_rc1::IfcComplexPropertyTemplate::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[196]); } // Ifc4x3_rc1::IfcComplexPropertyTemplate::IfcComplexPropertyTemplate(const std::weak_ptr& e) : IfcPropertyTemplate(e) { } // Ifc4x3_rc1::IfcComplexPropertyTemplate::IfcComplexPropertyTemplate(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_UsageName, std::optional< ::Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Value > v6_TemplateType, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertyTemplate > > v7_HasPropertyTemplates) : IfcPropertyTemplate(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_UsageName) {set_attribute_value(4, (*v5_UsageName)); } if (v6_TemplateType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::Class(),(size_t)*v6_TemplateType))); } if (v7_HasPropertyTemplates) {set_attribute_value(6, (*v7_HasPropertyTemplates)->generalize()); }; populate_derived(); } // Function implementations for IfcCompositeCurve std::vector< ::Ifc4x3_rc1::IfcCompositeCurveSegment > Ifc4x3_rc1::IfcCompositeCurve::Segments() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcCompositeCurveSegment>(es); } void Ifc4x3_rc1::IfcCompositeCurve::setSegments(const std::vector< ::Ifc4x3_rc1::IfcCompositeCurveSegment >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } boost::logic::tribool Ifc4x3_rc1::IfcCompositeCurve::SelfIntersect() const { boost::logic::tribool v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCompositeCurve::setSelfIntersect(const boost::logic::tribool& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcCompositeCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[198]); } const IfcParse::entity& Ifc4x3_rc1::IfcCompositeCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[198]); } // Ifc4x3_rc1::IfcCompositeCurve::IfcCompositeCurve(const std::weak_ptr& e) : IfcBoundedCurve(e) { } // Ifc4x3_rc1::IfcCompositeCurve::IfcCompositeCurve(std::vector< ::Ifc4x3_rc1::IfcCompositeCurveSegment > v1_Segments, boost::logic::tribool v2_SelfIntersect) : IfcBoundedCurve(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Segments)->generalize());set_attribute_value(1, (v2_SelfIntersect));; populate_derived(); } // Function implementations for IfcCompositeCurveOnSurface // const IfcParse::entity& Ifc4x3_rc1::IfcCompositeCurveOnSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[199]); } const IfcParse::entity& Ifc4x3_rc1::IfcCompositeCurveOnSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[199]); } // Ifc4x3_rc1::IfcCompositeCurveOnSurface::IfcCompositeCurveOnSurface(const std::weak_ptr& e) : IfcCompositeCurve(e) { } // Ifc4x3_rc1::IfcCompositeCurveOnSurface::IfcCompositeCurveOnSurface(std::vector< ::Ifc4x3_rc1::IfcCompositeCurveSegment > v1_Segments, boost::logic::tribool v2_SelfIntersect) : IfcCompositeCurve(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Segments)->generalize());set_attribute_value(1, (v2_SelfIntersect));; populate_derived(); } // Function implementations for IfcCompositeCurveSegment ::Ifc4x3_rc1::IfcTransitionCode::Value Ifc4x3_rc1::IfcCompositeCurveSegment::Transition() const { return ::Ifc4x3_rc1::IfcTransitionCode::FromString(get_attribute_value(0)); } void Ifc4x3_rc1::IfcCompositeCurveSegment::setTransition(const ::Ifc4x3_rc1::IfcTransitionCode::Value& v) { set_attribute_value(0, EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCode::Class(), (size_t) v));if constexpr (false)unset_attribute_value(0); } bool Ifc4x3_rc1::IfcCompositeCurveSegment::SameSense() const { bool v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCompositeCurveSegment::setSameSense(const bool& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcCompositeCurveSegment::ParentCurve() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcCompositeCurveSegment::setParentCurve(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector<::Ifc4x3_rc1::IfcCompositeCurve> Ifc4x3_rc1::IfcCompositeCurveSegment::UsingCurves() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[198], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcCompositeCurveSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[200]); } const IfcParse::entity& Ifc4x3_rc1::IfcCompositeCurveSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[200]); } // Ifc4x3_rc1::IfcCompositeCurveSegment::IfcCompositeCurveSegment(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcCompositeCurveSegment::IfcCompositeCurveSegment(::Ifc4x3_rc1::IfcTransitionCode::Value v1_Transition, bool v2_SameSense, ::Ifc4x3_rc1::IfcCurve v3_ParentCurve) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCode::Class(),(size_t)v1_Transition)));set_attribute_value(1, (v2_SameSense));set_attribute_value(2, (v3_ParentCurve));; populate_derived(); } // Function implementations for IfcCompositeProfileDef std::vector< ::Ifc4x3_rc1::IfcProfileDef > Ifc4x3_rc1::IfcCompositeProfileDef::Profiles() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcProfileDef>(es); } void Ifc4x3_rc1::IfcCompositeProfileDef::setProfiles(const std::vector< ::Ifc4x3_rc1::IfcProfileDef >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } std::optional< std::string > Ifc4x3_rc1::IfcCompositeProfileDef::Label() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcCompositeProfileDef::setLabel(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCompositeProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[201]); } const IfcParse::entity& Ifc4x3_rc1::IfcCompositeProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[201]); } // Ifc4x3_rc1::IfcCompositeProfileDef::IfcCompositeProfileDef(const std::weak_ptr& e) : IfcProfileDef(e) { } // Ifc4x3_rc1::IfcCompositeProfileDef::IfcCompositeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, std::vector< ::Ifc4x3_rc1::IfcProfileDef > v3_Profiles, std::optional< std::string > v4_Label) : IfcProfileDef(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }set_attribute_value(2, (v3_Profiles)->generalize()); if (v4_Label) {set_attribute_value(3, (*v4_Label)); }; populate_derived(); } // Function implementations for IfcCompressor std::optional< ::Ifc4x3_rc1::IfcCompressorTypeEnum::Value > Ifc4x3_rc1::IfcCompressor::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCompressorTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCompressor::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCompressorTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCompressorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCompressor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[203]); } const IfcParse::entity& Ifc4x3_rc1::IfcCompressor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[203]); } // Ifc4x3_rc1::IfcCompressor::IfcCompressor(const std::weak_ptr& e) : IfcFlowMovingDevice(e) { } // Ifc4x3_rc1::IfcCompressor::IfcCompressor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCompressorTypeEnum::Value > v9_PredefinedType) : IfcFlowMovingDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCompressorTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCompressorType ::Ifc4x3_rc1::IfcCompressorTypeEnum::Value Ifc4x3_rc1::IfcCompressorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCompressorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCompressorType::setPredefinedType(const ::Ifc4x3_rc1::IfcCompressorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCompressorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCompressorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[204]); } const IfcParse::entity& Ifc4x3_rc1::IfcCompressorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[204]); } // Ifc4x3_rc1::IfcCompressorType::IfcCompressorType(const std::weak_ptr& e) : IfcFlowMovingDeviceType(e) { } // Ifc4x3_rc1::IfcCompressorType::IfcCompressorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCompressorTypeEnum::Value v10_PredefinedType) : IfcFlowMovingDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCompressorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCondenser std::optional< ::Ifc4x3_rc1::IfcCondenserTypeEnum::Value > Ifc4x3_rc1::IfcCondenser::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCondenserTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCondenser::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCondenserTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCondenserTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCondenser::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[206]); } const IfcParse::entity& Ifc4x3_rc1::IfcCondenser::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[206]); } // Ifc4x3_rc1::IfcCondenser::IfcCondenser(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcCondenser::IfcCondenser(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCondenserTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCondenserTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCondenserType ::Ifc4x3_rc1::IfcCondenserTypeEnum::Value Ifc4x3_rc1::IfcCondenserType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCondenserTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCondenserType::setPredefinedType(const ::Ifc4x3_rc1::IfcCondenserTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCondenserTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCondenserType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[207]); } const IfcParse::entity& Ifc4x3_rc1::IfcCondenserType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[207]); } // Ifc4x3_rc1::IfcCondenserType::IfcCondenserType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcCondenserType::IfcCondenserType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCondenserTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCondenserTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcConic ::Ifc4x3_rc1::IfcAxis2Placement Ifc4x3_rc1::IfcConic::Position() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcAxis2Placement>(); } void Ifc4x3_rc1::IfcConic::setPosition(const ::Ifc4x3_rc1::IfcAxis2Placement& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcConic::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[209]); } const IfcParse::entity& Ifc4x3_rc1::IfcConic::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[209]); } // Ifc4x3_rc1::IfcConic::IfcConic(const std::weak_ptr& e) : IfcCurve(e) { } // Ifc4x3_rc1::IfcConic::IfcConic(::Ifc4x3_rc1::IfcAxis2Placement v1_Position) : IfcCurve(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Position));; populate_derived(); } // Function implementations for IfcConnectedFaceSet std::vector< ::Ifc4x3_rc1::IfcFace > Ifc4x3_rc1::IfcConnectedFaceSet::CfsFaces() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcFace>(es); } void Ifc4x3_rc1::IfcConnectedFaceSet::setCfsFaces(const std::vector< ::Ifc4x3_rc1::IfcFace >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcConnectedFaceSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[210]); } const IfcParse::entity& Ifc4x3_rc1::IfcConnectedFaceSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[210]); } // Ifc4x3_rc1::IfcConnectedFaceSet::IfcConnectedFaceSet(const std::weak_ptr& e) : IfcTopologicalRepresentationItem(e) { } // Ifc4x3_rc1::IfcConnectedFaceSet::IfcConnectedFaceSet(std::vector< ::Ifc4x3_rc1::IfcFace > v1_CfsFaces) : IfcTopologicalRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_CfsFaces)->generalize());; populate_derived(); } // Function implementations for IfcConnectionCurveGeometry ::Ifc4x3_rc1::IfcCurveOrEdgeCurve Ifc4x3_rc1::IfcConnectionCurveGeometry::CurveOnRelatingElement() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurveOrEdgeCurve>(); } void Ifc4x3_rc1::IfcConnectionCurveGeometry::setCurveOnRelatingElement(const ::Ifc4x3_rc1::IfcCurveOrEdgeCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcCurveOrEdgeCurve Ifc4x3_rc1::IfcConnectionCurveGeometry::CurveOnRelatedElement() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcCurveOrEdgeCurve{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCurveOrEdgeCurve>(); } void Ifc4x3_rc1::IfcConnectionCurveGeometry::setCurveOnRelatedElement(const ::Ifc4x3_rc1::IfcCurveOrEdgeCurve& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcConnectionCurveGeometry::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[211]); } const IfcParse::entity& Ifc4x3_rc1::IfcConnectionCurveGeometry::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[211]); } // Ifc4x3_rc1::IfcConnectionCurveGeometry::IfcConnectionCurveGeometry(const std::weak_ptr& e) : IfcConnectionGeometry(e) { } // Ifc4x3_rc1::IfcConnectionCurveGeometry::IfcConnectionCurveGeometry(::Ifc4x3_rc1::IfcCurveOrEdgeCurve v1_CurveOnRelatingElement, ::Ifc4x3_rc1::IfcCurveOrEdgeCurve v2_CurveOnRelatedElement) : IfcConnectionGeometry(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_CurveOnRelatingElement)); if (v2_CurveOnRelatedElement) {set_attribute_value(1, (*v2_CurveOnRelatedElement)); }; populate_derived(); } // Function implementations for IfcConnectionGeometry // const IfcParse::entity& Ifc4x3_rc1::IfcConnectionGeometry::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[212]); } const IfcParse::entity& Ifc4x3_rc1::IfcConnectionGeometry::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[212]); } // Ifc4x3_rc1::IfcConnectionGeometry::IfcConnectionGeometry(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcConnectionGeometry::IfcConnectionGeometry() : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcConnectionPointEccentricity std::optional< double > Ifc4x3_rc1::IfcConnectionPointEccentricity::EccentricityInX() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcConnectionPointEccentricity::setEccentricityInX(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcConnectionPointEccentricity::EccentricityInY() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcConnectionPointEccentricity::setEccentricityInY(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcConnectionPointEccentricity::EccentricityInZ() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcConnectionPointEccentricity::setEccentricityInZ(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcConnectionPointEccentricity::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[213]); } const IfcParse::entity& Ifc4x3_rc1::IfcConnectionPointEccentricity::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[213]); } // Ifc4x3_rc1::IfcConnectionPointEccentricity::IfcConnectionPointEccentricity(const std::weak_ptr& e) : IfcConnectionPointGeometry(e) { } // Ifc4x3_rc1::IfcConnectionPointEccentricity::IfcConnectionPointEccentricity(::Ifc4x3_rc1::IfcPointOrVertexPoint v1_PointOnRelatingElement, ::Ifc4x3_rc1::IfcPointOrVertexPoint v2_PointOnRelatedElement, std::optional< double > v3_EccentricityInX, std::optional< double > v4_EccentricityInY, std::optional< double > v5_EccentricityInZ) : IfcConnectionPointGeometry(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_PointOnRelatingElement)); if (v2_PointOnRelatedElement) {set_attribute_value(1, (*v2_PointOnRelatedElement)); } if (v3_EccentricityInX) {set_attribute_value(2, (*v3_EccentricityInX)); } if (v4_EccentricityInY) {set_attribute_value(3, (*v4_EccentricityInY)); } if (v5_EccentricityInZ) {set_attribute_value(4, (*v5_EccentricityInZ)); }; populate_derived(); } // Function implementations for IfcConnectionPointGeometry ::Ifc4x3_rc1::IfcPointOrVertexPoint Ifc4x3_rc1::IfcConnectionPointGeometry::PointOnRelatingElement() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcPointOrVertexPoint>(); } void Ifc4x3_rc1::IfcConnectionPointGeometry::setPointOnRelatingElement(const ::Ifc4x3_rc1::IfcPointOrVertexPoint& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcPointOrVertexPoint Ifc4x3_rc1::IfcConnectionPointGeometry::PointOnRelatedElement() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcPointOrVertexPoint{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcPointOrVertexPoint>(); } void Ifc4x3_rc1::IfcConnectionPointGeometry::setPointOnRelatedElement(const ::Ifc4x3_rc1::IfcPointOrVertexPoint& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcConnectionPointGeometry::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[214]); } const IfcParse::entity& Ifc4x3_rc1::IfcConnectionPointGeometry::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[214]); } // Ifc4x3_rc1::IfcConnectionPointGeometry::IfcConnectionPointGeometry(const std::weak_ptr& e) : IfcConnectionGeometry(e) { } // Ifc4x3_rc1::IfcConnectionPointGeometry::IfcConnectionPointGeometry(::Ifc4x3_rc1::IfcPointOrVertexPoint v1_PointOnRelatingElement, ::Ifc4x3_rc1::IfcPointOrVertexPoint v2_PointOnRelatedElement) : IfcConnectionGeometry(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_PointOnRelatingElement)); if (v2_PointOnRelatedElement) {set_attribute_value(1, (*v2_PointOnRelatedElement)); }; populate_derived(); } // Function implementations for IfcConnectionSurfaceGeometry ::Ifc4x3_rc1::IfcSurfaceOrFaceSurface Ifc4x3_rc1::IfcConnectionSurfaceGeometry::SurfaceOnRelatingElement() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcSurfaceOrFaceSurface>(); } void Ifc4x3_rc1::IfcConnectionSurfaceGeometry::setSurfaceOnRelatingElement(const ::Ifc4x3_rc1::IfcSurfaceOrFaceSurface& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcSurfaceOrFaceSurface Ifc4x3_rc1::IfcConnectionSurfaceGeometry::SurfaceOnRelatedElement() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcSurfaceOrFaceSurface{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcSurfaceOrFaceSurface>(); } void Ifc4x3_rc1::IfcConnectionSurfaceGeometry::setSurfaceOnRelatedElement(const ::Ifc4x3_rc1::IfcSurfaceOrFaceSurface& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcConnectionSurfaceGeometry::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[215]); } const IfcParse::entity& Ifc4x3_rc1::IfcConnectionSurfaceGeometry::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[215]); } // Ifc4x3_rc1::IfcConnectionSurfaceGeometry::IfcConnectionSurfaceGeometry(const std::weak_ptr& e) : IfcConnectionGeometry(e) { } // Ifc4x3_rc1::IfcConnectionSurfaceGeometry::IfcConnectionSurfaceGeometry(::Ifc4x3_rc1::IfcSurfaceOrFaceSurface v1_SurfaceOnRelatingElement, ::Ifc4x3_rc1::IfcSurfaceOrFaceSurface v2_SurfaceOnRelatedElement) : IfcConnectionGeometry(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_SurfaceOnRelatingElement)); if (v2_SurfaceOnRelatedElement) {set_attribute_value(1, (*v2_SurfaceOnRelatedElement)); }; populate_derived(); } // Function implementations for IfcConnectionVolumeGeometry ::Ifc4x3_rc1::IfcSolidOrShell Ifc4x3_rc1::IfcConnectionVolumeGeometry::VolumeOnRelatingElement() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcSolidOrShell>(); } void Ifc4x3_rc1::IfcConnectionVolumeGeometry::setVolumeOnRelatingElement(const ::Ifc4x3_rc1::IfcSolidOrShell& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcSolidOrShell Ifc4x3_rc1::IfcConnectionVolumeGeometry::VolumeOnRelatedElement() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcSolidOrShell{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcSolidOrShell>(); } void Ifc4x3_rc1::IfcConnectionVolumeGeometry::setVolumeOnRelatedElement(const ::Ifc4x3_rc1::IfcSolidOrShell& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcConnectionVolumeGeometry::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[217]); } const IfcParse::entity& Ifc4x3_rc1::IfcConnectionVolumeGeometry::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[217]); } // Ifc4x3_rc1::IfcConnectionVolumeGeometry::IfcConnectionVolumeGeometry(const std::weak_ptr& e) : IfcConnectionGeometry(e) { } // Ifc4x3_rc1::IfcConnectionVolumeGeometry::IfcConnectionVolumeGeometry(::Ifc4x3_rc1::IfcSolidOrShell v1_VolumeOnRelatingElement, ::Ifc4x3_rc1::IfcSolidOrShell v2_VolumeOnRelatedElement) : IfcConnectionGeometry(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_VolumeOnRelatingElement)); if (v2_VolumeOnRelatedElement) {set_attribute_value(1, (*v2_VolumeOnRelatedElement)); }; populate_derived(); } // Function implementations for IfcConstraint std::string Ifc4x3_rc1::IfcConstraint::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcConstraint::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcConstraint::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcConstraint::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } ::Ifc4x3_rc1::IfcConstraintEnum::Value Ifc4x3_rc1::IfcConstraint::ConstraintGrade() const { return ::Ifc4x3_rc1::IfcConstraintEnum::FromString(get_attribute_value(2)); } void Ifc4x3_rc1::IfcConstraint::setConstraintGrade(const ::Ifc4x3_rc1::IfcConstraintEnum::Value& v) { set_attribute_value(2, EnumerationReference(&::Ifc4x3_rc1::IfcConstraintEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(2); } std::optional< std::string > Ifc4x3_rc1::IfcConstraint::ConstraintSource() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcConstraint::setConstraintSource(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcConstraint::CreatingActor() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcActorSelect{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcConstraint::setCreatingActor(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::optional< std::string > Ifc4x3_rc1::IfcConstraint::CreationTime() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcConstraint::setCreationTime(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcConstraint::UserDefinedGrade() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcConstraint::setUserDefinedGrade(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcConstraint::HasExternalReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } std::vector<::Ifc4x3_rc1::IfcResourceConstraintRelationship> Ifc4x3_rc1::IfcConstraint::PropertiesForConstraint() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[967], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcConstraint::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[218]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstraint::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[218]); } // Ifc4x3_rc1::IfcConstraint::IfcConstraint(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcConstraint::IfcConstraint(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcConstraintEnum::Value v3_ConstraintGrade, std::optional< std::string > v4_ConstraintSource, ::Ifc4x3_rc1::IfcActorSelect v5_CreatingActor, std::optional< std::string > v6_CreationTime, std::optional< std::string > v7_UserDefinedGrade) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcConstraintEnum::Class(),(size_t)v3_ConstraintGrade))); if (v4_ConstraintSource) {set_attribute_value(3, (*v4_ConstraintSource)); } if (v5_CreatingActor) {set_attribute_value(4, (*v5_CreatingActor)); } if (v6_CreationTime) {set_attribute_value(5, (*v6_CreationTime)); } if (v7_UserDefinedGrade) {set_attribute_value(6, (*v7_UserDefinedGrade)); }; populate_derived(); } // Function implementations for IfcConstructionEquipmentResource std::optional< ::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value > Ifc4x3_rc1::IfcConstructionEquipmentResource::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcConstructionEquipmentResource::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcConstructionEquipmentResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[220]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstructionEquipmentResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[220]); } // Ifc4x3_rc1::IfcConstructionEquipmentResource::IfcConstructionEquipmentResource(const std::weak_ptr& e) : IfcConstructionResource(e) { } // Ifc4x3_rc1::IfcConstructionEquipmentResource::IfcConstructionEquipmentResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, ::Ifc4x3_rc1::IfcResourceTime v8_Usage, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v9_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v10_BaseQuantity, std::optional< ::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value > v11_PredefinedType) : IfcConstructionResource(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_Usage) {set_attribute_value(7, (*v8_Usage)); } if (v9_BaseCosts) {set_attribute_value(8, (*v9_BaseCosts)->generalize()); } if (v10_BaseQuantity) {set_attribute_value(9, (*v10_BaseQuantity)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcConstructionEquipmentResourceType ::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value Ifc4x3_rc1::IfcConstructionEquipmentResourceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcConstructionEquipmentResourceType::setPredefinedType(const ::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcConstructionEquipmentResourceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[221]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstructionEquipmentResourceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[221]); } // Ifc4x3_rc1::IfcConstructionEquipmentResourceType::IfcConstructionEquipmentResourceType(const std::weak_ptr& e) : IfcConstructionResourceType(e) { } // Ifc4x3_rc1::IfcConstructionEquipmentResourceType::IfcConstructionEquipmentResourceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ResourceType, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v11_BaseQuantity, ::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Value v12_PredefinedType) : IfcConstructionResourceType(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ResourceType) {set_attribute_value(8, (*v9_ResourceType)); } if (v10_BaseCosts) {set_attribute_value(9, (*v10_BaseCosts)->generalize()); } if (v11_BaseQuantity) {set_attribute_value(10, (*v11_BaseQuantity)); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcConstructionMaterialResource std::optional< ::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value > Ifc4x3_rc1::IfcConstructionMaterialResource::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcConstructionMaterialResource::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcConstructionMaterialResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[223]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstructionMaterialResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[223]); } // Ifc4x3_rc1::IfcConstructionMaterialResource::IfcConstructionMaterialResource(const std::weak_ptr& e) : IfcConstructionResource(e) { } // Ifc4x3_rc1::IfcConstructionMaterialResource::IfcConstructionMaterialResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, ::Ifc4x3_rc1::IfcResourceTime v8_Usage, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v9_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v10_BaseQuantity, std::optional< ::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value > v11_PredefinedType) : IfcConstructionResource(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_Usage) {set_attribute_value(7, (*v8_Usage)); } if (v9_BaseCosts) {set_attribute_value(8, (*v9_BaseCosts)->generalize()); } if (v10_BaseQuantity) {set_attribute_value(9, (*v10_BaseQuantity)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcConstructionMaterialResourceType ::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value Ifc4x3_rc1::IfcConstructionMaterialResourceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcConstructionMaterialResourceType::setPredefinedType(const ::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcConstructionMaterialResourceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[224]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstructionMaterialResourceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[224]); } // Ifc4x3_rc1::IfcConstructionMaterialResourceType::IfcConstructionMaterialResourceType(const std::weak_ptr& e) : IfcConstructionResourceType(e) { } // Ifc4x3_rc1::IfcConstructionMaterialResourceType::IfcConstructionMaterialResourceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ResourceType, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v11_BaseQuantity, ::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Value v12_PredefinedType) : IfcConstructionResourceType(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ResourceType) {set_attribute_value(8, (*v9_ResourceType)); } if (v10_BaseCosts) {set_attribute_value(9, (*v10_BaseCosts)->generalize()); } if (v11_BaseQuantity) {set_attribute_value(10, (*v11_BaseQuantity)); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcConstructionProductResource std::optional< ::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value > Ifc4x3_rc1::IfcConstructionProductResource::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcConstructionProductResource::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcConstructionProductResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[226]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstructionProductResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[226]); } // Ifc4x3_rc1::IfcConstructionProductResource::IfcConstructionProductResource(const std::weak_ptr& e) : IfcConstructionResource(e) { } // Ifc4x3_rc1::IfcConstructionProductResource::IfcConstructionProductResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, ::Ifc4x3_rc1::IfcResourceTime v8_Usage, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v9_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v10_BaseQuantity, std::optional< ::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value > v11_PredefinedType) : IfcConstructionResource(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_Usage) {set_attribute_value(7, (*v8_Usage)); } if (v9_BaseCosts) {set_attribute_value(8, (*v9_BaseCosts)->generalize()); } if (v10_BaseQuantity) {set_attribute_value(9, (*v10_BaseQuantity)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcConstructionProductResourceType ::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value Ifc4x3_rc1::IfcConstructionProductResourceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcConstructionProductResourceType::setPredefinedType(const ::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcConstructionProductResourceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[227]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstructionProductResourceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[227]); } // Ifc4x3_rc1::IfcConstructionProductResourceType::IfcConstructionProductResourceType(const std::weak_ptr& e) : IfcConstructionResourceType(e) { } // Ifc4x3_rc1::IfcConstructionProductResourceType::IfcConstructionProductResourceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ResourceType, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v11_BaseQuantity, ::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Value v12_PredefinedType) : IfcConstructionResourceType(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ResourceType) {set_attribute_value(8, (*v9_ResourceType)); } if (v10_BaseCosts) {set_attribute_value(9, (*v10_BaseCosts)->generalize()); } if (v11_BaseQuantity) {set_attribute_value(10, (*v11_BaseQuantity)); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcConstructionResource ::Ifc4x3_rc1::IfcResourceTime Ifc4x3_rc1::IfcConstructionResource::Usage() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcResourceTime{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcResourceTime>(); } void Ifc4x3_rc1::IfcConstructionResource::setUsage(const ::Ifc4x3_rc1::IfcResourceTime& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > Ifc4x3_rc1::IfcConstructionResource::BaseCosts() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(8); return cast_vector<::Ifc4x3_rc1::IfcAppliedValue>(es); } void Ifc4x3_rc1::IfcConstructionResource::setBaseCosts(const std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > >& v) { if (v) {set_attribute_value(8, cast_vector(*v));} else {unset_attribute_value(8);} } ::Ifc4x3_rc1::IfcPhysicalQuantity Ifc4x3_rc1::IfcConstructionResource::BaseQuantity() const { if(get_attribute_value(9).isNull()) { return ::Ifc4x3_rc1::IfcPhysicalQuantity{}; } return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcPhysicalQuantity>(); } void Ifc4x3_rc1::IfcConstructionResource::setBaseQuantity(const ::Ifc4x3_rc1::IfcPhysicalQuantity& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcConstructionResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[229]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstructionResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[229]); } // Ifc4x3_rc1::IfcConstructionResource::IfcConstructionResource(const std::weak_ptr& e) : IfcResource(e) { } // Ifc4x3_rc1::IfcConstructionResource::IfcConstructionResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, ::Ifc4x3_rc1::IfcResourceTime v8_Usage, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v9_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v10_BaseQuantity) : IfcResource(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_Usage) {set_attribute_value(7, (*v8_Usage)); } if (v9_BaseCosts) {set_attribute_value(8, (*v9_BaseCosts)->generalize()); } if (v10_BaseQuantity) {set_attribute_value(9, (*v10_BaseQuantity)); }; populate_derived(); } // Function implementations for IfcConstructionResourceType std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > Ifc4x3_rc1::IfcConstructionResourceType::BaseCosts() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(9); return cast_vector<::Ifc4x3_rc1::IfcAppliedValue>(es); } void Ifc4x3_rc1::IfcConstructionResourceType::setBaseCosts(const std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > >& v) { if (v) {set_attribute_value(9, cast_vector(*v));} else {unset_attribute_value(9);} } ::Ifc4x3_rc1::IfcPhysicalQuantity Ifc4x3_rc1::IfcConstructionResourceType::BaseQuantity() const { if(get_attribute_value(10).isNull()) { return ::Ifc4x3_rc1::IfcPhysicalQuantity{}; } return ((express::Base)(get_attribute_value(10))).as<::Ifc4x3_rc1::IfcPhysicalQuantity>(); } void Ifc4x3_rc1::IfcConstructionResourceType::setBaseQuantity(const ::Ifc4x3_rc1::IfcPhysicalQuantity& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } // const IfcParse::entity& Ifc4x3_rc1::IfcConstructionResourceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[230]); } const IfcParse::entity& Ifc4x3_rc1::IfcConstructionResourceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[230]); } // Ifc4x3_rc1::IfcConstructionResourceType::IfcConstructionResourceType(const std::weak_ptr& e) : IfcTypeResource(e) { } // Ifc4x3_rc1::IfcConstructionResourceType::IfcConstructionResourceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ResourceType, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v11_BaseQuantity) : IfcTypeResource(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ResourceType) {set_attribute_value(8, (*v9_ResourceType)); } if (v10_BaseCosts) {set_attribute_value(9, (*v10_BaseCosts)->generalize()); } if (v11_BaseQuantity) {set_attribute_value(10, (*v11_BaseQuantity)); }; populate_derived(); } // Function implementations for IfcContext std::optional< std::string > Ifc4x3_rc1::IfcContext::ObjectType() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcContext::setObjectType(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcContext::LongName() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcContext::setLongName(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcContext::Phase() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcContext::setPhase(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationContext > > Ifc4x3_rc1::IfcContext::RepresentationContexts() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcRepresentationContext>(es); } void Ifc4x3_rc1::IfcContext::setRepresentationContexts(const std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationContext > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } ::Ifc4x3_rc1::IfcUnitAssignment Ifc4x3_rc1::IfcContext::UnitsInContext() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcUnitAssignment{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcUnitAssignment>(); } void Ifc4x3_rc1::IfcContext::setUnitsInContext(const ::Ifc4x3_rc1::IfcUnitAssignment& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } std::vector<::Ifc4x3_rc1::IfcRelDefinesByProperties> Ifc4x3_rc1::IfcContext::IsDefinedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[944], 4)); } std::vector<::Ifc4x3_rc1::IfcRelDeclares> Ifc4x3_rc1::IfcContext::Declares() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[940], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcContext::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[231]); } const IfcParse::entity& Ifc4x3_rc1::IfcContext::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[231]); } // Ifc4x3_rc1::IfcContext::IfcContext(const std::weak_ptr& e) : IfcObjectDefinition(e) { } // Ifc4x3_rc1::IfcContext::IfcContext(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_LongName, std::optional< std::string > v7_Phase, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationContext > > v8_RepresentationContexts, ::Ifc4x3_rc1::IfcUnitAssignment v9_UnitsInContext) : IfcObjectDefinition(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_LongName) {set_attribute_value(5, (*v6_LongName)); } if (v7_Phase) {set_attribute_value(6, (*v7_Phase)); } if (v8_RepresentationContexts) {set_attribute_value(7, (*v8_RepresentationContexts)->generalize()); } if (v9_UnitsInContext) {set_attribute_value(8, (*v9_UnitsInContext)); }; populate_derived(); } // Function implementations for IfcContextDependentUnit std::string Ifc4x3_rc1::IfcContextDependentUnit::Name() const { std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcContextDependentUnit::setName(const std::string& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcContextDependentUnit::HasExternalReference() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcContextDependentUnit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[233]); } const IfcParse::entity& Ifc4x3_rc1::IfcContextDependentUnit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[233]); } // Ifc4x3_rc1::IfcContextDependentUnit::IfcContextDependentUnit(const std::weak_ptr& e) : IfcNamedUnit(e) { } // Ifc4x3_rc1::IfcContextDependentUnit::IfcContextDependentUnit(::Ifc4x3_rc1::IfcDimensionalExponents v1_Dimensions, ::Ifc4x3_rc1::IfcUnitEnum::Value v2_UnitType, std::string v3_Name) : IfcNamedUnit(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Dimensions));set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitEnum::Class(),(size_t)v2_UnitType)));set_attribute_value(2, (v3_Name));; populate_derived(); } // Function implementations for IfcControl std::optional< std::string > Ifc4x3_rc1::IfcControl::Identification() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcControl::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::vector<::Ifc4x3_rc1::IfcRelAssignsToControl> Ifc4x3_rc1::IfcControl::Controls() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[913], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcControl::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[234]); } const IfcParse::entity& Ifc4x3_rc1::IfcControl::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[234]); } // Ifc4x3_rc1::IfcControl::IfcControl(const std::weak_ptr& e) : IfcObject(e) { } // Ifc4x3_rc1::IfcControl::IfcControl(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification) : IfcObject(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); }; populate_derived(); } // Function implementations for IfcController std::optional< ::Ifc4x3_rc1::IfcControllerTypeEnum::Value > Ifc4x3_rc1::IfcController::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcControllerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcController::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcControllerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcControllerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcController::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[235]); } const IfcParse::entity& Ifc4x3_rc1::IfcController::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[235]); } // Ifc4x3_rc1::IfcController::IfcController(const std::weak_ptr& e) : IfcDistributionControlElement(e) { } // Ifc4x3_rc1::IfcController::IfcController(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcControllerTypeEnum::Value > v9_PredefinedType) : IfcDistributionControlElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcControllerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcControllerType ::Ifc4x3_rc1::IfcControllerTypeEnum::Value Ifc4x3_rc1::IfcControllerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcControllerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcControllerType::setPredefinedType(const ::Ifc4x3_rc1::IfcControllerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcControllerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcControllerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[236]); } const IfcParse::entity& Ifc4x3_rc1::IfcControllerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[236]); } // Ifc4x3_rc1::IfcControllerType::IfcControllerType(const std::weak_ptr& e) : IfcDistributionControlElementType(e) { } // Ifc4x3_rc1::IfcControllerType::IfcControllerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcControllerTypeEnum::Value v10_PredefinedType) : IfcDistributionControlElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcControllerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcConversionBasedUnit std::string Ifc4x3_rc1::IfcConversionBasedUnit::Name() const { std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcConversionBasedUnit::setName(const std::string& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcMeasureWithUnit Ifc4x3_rc1::IfcConversionBasedUnit::ConversionFactor() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcMeasureWithUnit>(); } void Ifc4x3_rc1::IfcConversionBasedUnit::setConversionFactor(const ::Ifc4x3_rc1::IfcMeasureWithUnit& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcConversionBasedUnit::HasExternalReference() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcConversionBasedUnit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[238]); } const IfcParse::entity& Ifc4x3_rc1::IfcConversionBasedUnit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[238]); } // Ifc4x3_rc1::IfcConversionBasedUnit::IfcConversionBasedUnit(const std::weak_ptr& e) : IfcNamedUnit(e) { } // Ifc4x3_rc1::IfcConversionBasedUnit::IfcConversionBasedUnit(::Ifc4x3_rc1::IfcDimensionalExponents v1_Dimensions, ::Ifc4x3_rc1::IfcUnitEnum::Value v2_UnitType, std::string v3_Name, ::Ifc4x3_rc1::IfcMeasureWithUnit v4_ConversionFactor) : IfcNamedUnit(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Dimensions));set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitEnum::Class(),(size_t)v2_UnitType)));set_attribute_value(2, (v3_Name));set_attribute_value(3, (v4_ConversionFactor));; populate_derived(); } // Function implementations for IfcConversionBasedUnitWithOffset double Ifc4x3_rc1::IfcConversionBasedUnitWithOffset::ConversionOffset() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcConversionBasedUnitWithOffset::setConversionOffset(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcConversionBasedUnitWithOffset::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[239]); } const IfcParse::entity& Ifc4x3_rc1::IfcConversionBasedUnitWithOffset::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[239]); } // Ifc4x3_rc1::IfcConversionBasedUnitWithOffset::IfcConversionBasedUnitWithOffset(const std::weak_ptr& e) : IfcConversionBasedUnit(e) { } // Ifc4x3_rc1::IfcConversionBasedUnitWithOffset::IfcConversionBasedUnitWithOffset(::Ifc4x3_rc1::IfcDimensionalExponents v1_Dimensions, ::Ifc4x3_rc1::IfcUnitEnum::Value v2_UnitType, std::string v3_Name, ::Ifc4x3_rc1::IfcMeasureWithUnit v4_ConversionFactor, double v5_ConversionOffset) : IfcConversionBasedUnit(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Dimensions));set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitEnum::Class(),(size_t)v2_UnitType)));set_attribute_value(2, (v3_Name));set_attribute_value(3, (v4_ConversionFactor));set_attribute_value(4, (v5_ConversionOffset));; populate_derived(); } // Function implementations for IfcConveyorSegment std::optional< ::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value > Ifc4x3_rc1::IfcConveyorSegment::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcConveyorSegment::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcConveyorSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[240]); } const IfcParse::entity& Ifc4x3_rc1::IfcConveyorSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[240]); } // Ifc4x3_rc1::IfcConveyorSegment::IfcConveyorSegment(const std::weak_ptr& e) : IfcFlowSegment(e) { } // Ifc4x3_rc1::IfcConveyorSegment::IfcConveyorSegment(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value > v9_PredefinedType) : IfcFlowSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcConveyorSegmentType ::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value Ifc4x3_rc1::IfcConveyorSegmentType::PredefinedType() const { return ::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcConveyorSegmentType::setPredefinedType(const ::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcConveyorSegmentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[241]); } const IfcParse::entity& Ifc4x3_rc1::IfcConveyorSegmentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[241]); } // Ifc4x3_rc1::IfcConveyorSegmentType::IfcConveyorSegmentType(const std::weak_ptr& e) : IfcFlowSegmentType(e) { } // Ifc4x3_rc1::IfcConveyorSegmentType::IfcConveyorSegmentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Value v10_PredefinedType) : IfcFlowSegmentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCooledBeam std::optional< ::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value > Ifc4x3_rc1::IfcCooledBeam::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCooledBeamTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCooledBeam::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCooledBeam::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[243]); } const IfcParse::entity& Ifc4x3_rc1::IfcCooledBeam::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[243]); } // Ifc4x3_rc1::IfcCooledBeam::IfcCooledBeam(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcCooledBeam::IfcCooledBeam(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCooledBeamType ::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value Ifc4x3_rc1::IfcCooledBeamType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCooledBeamTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCooledBeamType::setPredefinedType(const ::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCooledBeamType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[244]); } const IfcParse::entity& Ifc4x3_rc1::IfcCooledBeamType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[244]); } // Ifc4x3_rc1::IfcCooledBeamType::IfcCooledBeamType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcCooledBeamType::IfcCooledBeamType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCooledBeamTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCoolingTower std::optional< ::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value > Ifc4x3_rc1::IfcCoolingTower::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCoolingTower::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCoolingTower::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[246]); } const IfcParse::entity& Ifc4x3_rc1::IfcCoolingTower::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[246]); } // Ifc4x3_rc1::IfcCoolingTower::IfcCoolingTower(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcCoolingTower::IfcCoolingTower(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCoolingTowerType ::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value Ifc4x3_rc1::IfcCoolingTowerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCoolingTowerType::setPredefinedType(const ::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCoolingTowerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[247]); } const IfcParse::entity& Ifc4x3_rc1::IfcCoolingTowerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[247]); } // Ifc4x3_rc1::IfcCoolingTowerType::IfcCoolingTowerType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcCoolingTowerType::IfcCoolingTowerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCoolingTowerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCoordinateOperation ::Ifc4x3_rc1::IfcCoordinateReferenceSystemSelect Ifc4x3_rc1::IfcCoordinateOperation::SourceCRS() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCoordinateReferenceSystemSelect>(); } void Ifc4x3_rc1::IfcCoordinateOperation::setSourceCRS(const ::Ifc4x3_rc1::IfcCoordinateReferenceSystemSelect& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcCoordinateReferenceSystem Ifc4x3_rc1::IfcCoordinateOperation::TargetCRS() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCoordinateReferenceSystem>(); } void Ifc4x3_rc1::IfcCoordinateOperation::setTargetCRS(const ::Ifc4x3_rc1::IfcCoordinateReferenceSystem& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcCoordinateOperation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[249]); } const IfcParse::entity& Ifc4x3_rc1::IfcCoordinateOperation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[249]); } // Ifc4x3_rc1::IfcCoordinateOperation::IfcCoordinateOperation(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcCoordinateOperation::IfcCoordinateOperation(::Ifc4x3_rc1::IfcCoordinateReferenceSystemSelect v1_SourceCRS, ::Ifc4x3_rc1::IfcCoordinateReferenceSystem v2_TargetCRS) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_SourceCRS));set_attribute_value(1, (v2_TargetCRS));; populate_derived(); } // Function implementations for IfcCoordinateReferenceSystem std::string Ifc4x3_rc1::IfcCoordinateReferenceSystem::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcCoordinateReferenceSystem::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcCoordinateReferenceSystem::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCoordinateReferenceSystem::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcCoordinateReferenceSystem::GeodeticDatum() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcCoordinateReferenceSystem::setGeodeticDatum(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::string > Ifc4x3_rc1::IfcCoordinateReferenceSystem::VerticalDatum() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcCoordinateReferenceSystem::setVerticalDatum(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::vector<::Ifc4x3_rc1::IfcCoordinateOperation> Ifc4x3_rc1::IfcCoordinateReferenceSystem::HasCoordinateOperation() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[249], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcCoordinateReferenceSystem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[250]); } const IfcParse::entity& Ifc4x3_rc1::IfcCoordinateReferenceSystem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[250]); } // Ifc4x3_rc1::IfcCoordinateReferenceSystem::IfcCoordinateReferenceSystem(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcCoordinateReferenceSystem::IfcCoordinateReferenceSystem(std::string v1_Name, std::optional< std::string > v2_Description, std::optional< std::string > v3_GeodeticDatum, std::optional< std::string > v4_VerticalDatum) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_GeodeticDatum) {set_attribute_value(2, (*v3_GeodeticDatum)); } if (v4_VerticalDatum) {set_attribute_value(3, (*v4_VerticalDatum)); }; populate_derived(); } // Function implementations for IfcCostItem std::optional< ::Ifc4x3_rc1::IfcCostItemTypeEnum::Value > Ifc4x3_rc1::IfcCostItem::PredefinedType() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCostItemTypeEnum::FromString(get_attribute_value(6)); } void Ifc4x3_rc1::IfcCostItem::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCostItemTypeEnum::Value >& v) { if (v) {set_attribute_value(6, EnumerationReference(&::Ifc4x3_rc1::IfcCostItemTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(6);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcCostValue > > Ifc4x3_rc1::IfcCostItem::CostValues() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcCostValue>(es); } void Ifc4x3_rc1::IfcCostItem::setCostValues(const std::optional< std::vector< ::Ifc4x3_rc1::IfcCostValue > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity > > Ifc4x3_rc1::IfcCostItem::CostQuantities() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(8); return cast_vector<::Ifc4x3_rc1::IfcPhysicalQuantity>(es); } void Ifc4x3_rc1::IfcCostItem::setCostQuantities(const std::optional< std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity > >& v) { if (v) {set_attribute_value(8, cast_vector(*v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCostItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[252]); } const IfcParse::entity& Ifc4x3_rc1::IfcCostItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[252]); } // Ifc4x3_rc1::IfcCostItem::IfcCostItem(const std::weak_ptr& e) : IfcControl(e) { } // Ifc4x3_rc1::IfcCostItem::IfcCostItem(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< ::Ifc4x3_rc1::IfcCostItemTypeEnum::Value > v7_PredefinedType, std::optional< std::vector< ::Ifc4x3_rc1::IfcCostValue > > v8_CostValues, std::optional< std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity > > v9_CostQuantities) : IfcControl(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_PredefinedType) {set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcCostItemTypeEnum::Class(),(size_t)*v7_PredefinedType))); } if (v8_CostValues) {set_attribute_value(7, (*v8_CostValues)->generalize()); } if (v9_CostQuantities) {set_attribute_value(8, (*v9_CostQuantities)->generalize()); }; populate_derived(); } // Function implementations for IfcCostSchedule std::optional< ::Ifc4x3_rc1::IfcCostScheduleTypeEnum::Value > Ifc4x3_rc1::IfcCostSchedule::PredefinedType() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCostScheduleTypeEnum::FromString(get_attribute_value(6)); } void Ifc4x3_rc1::IfcCostSchedule::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCostScheduleTypeEnum::Value >& v) { if (v) {set_attribute_value(6, EnumerationReference(&::Ifc4x3_rc1::IfcCostScheduleTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcCostSchedule::Status() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcCostSchedule::setStatus(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcCostSchedule::SubmittedOn() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcCostSchedule::setSubmittedOn(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< std::string > Ifc4x3_rc1::IfcCostSchedule::UpdateDate() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::string v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcCostSchedule::setUpdateDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCostSchedule::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[254]); } const IfcParse::entity& Ifc4x3_rc1::IfcCostSchedule::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[254]); } // Ifc4x3_rc1::IfcCostSchedule::IfcCostSchedule(const std::weak_ptr& e) : IfcControl(e) { } // Ifc4x3_rc1::IfcCostSchedule::IfcCostSchedule(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< ::Ifc4x3_rc1::IfcCostScheduleTypeEnum::Value > v7_PredefinedType, std::optional< std::string > v8_Status, std::optional< std::string > v9_SubmittedOn, std::optional< std::string > v10_UpdateDate) : IfcControl(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_PredefinedType) {set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcCostScheduleTypeEnum::Class(),(size_t)*v7_PredefinedType))); } if (v8_Status) {set_attribute_value(7, (*v8_Status)); } if (v9_SubmittedOn) {set_attribute_value(8, (*v9_SubmittedOn)); } if (v10_UpdateDate) {set_attribute_value(9, (*v10_UpdateDate)); }; populate_derived(); } // Function implementations for IfcCostValue // const IfcParse::entity& Ifc4x3_rc1::IfcCostValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[256]); } const IfcParse::entity& Ifc4x3_rc1::IfcCostValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[256]); } // Ifc4x3_rc1::IfcCostValue::IfcCostValue(const std::weak_ptr& e) : IfcAppliedValue(e) { } // Ifc4x3_rc1::IfcCostValue::IfcCostValue(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcAppliedValueSelect v3_AppliedValue, ::Ifc4x3_rc1::IfcMeasureWithUnit v4_UnitBasis, std::optional< std::string > v5_ApplicableDate, std::optional< std::string > v6_FixedUntilDate, std::optional< std::string > v7_Category, std::optional< std::string > v8_Condition, std::optional< ::Ifc4x3_rc1::IfcArithmeticOperatorEnum::Value > v9_ArithmeticOperator, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_Components) : IfcAppliedValue(const std::weak_ptr&(in_memory_attribute_storage(10))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_AppliedValue) {set_attribute_value(2, (*v3_AppliedValue)); } if (v4_UnitBasis) {set_attribute_value(3, (*v4_UnitBasis)); } if (v5_ApplicableDate) {set_attribute_value(4, (*v5_ApplicableDate)); } if (v6_FixedUntilDate) {set_attribute_value(5, (*v6_FixedUntilDate)); } if (v7_Category) {set_attribute_value(6, (*v7_Category)); } if (v8_Condition) {set_attribute_value(7, (*v8_Condition)); } if (v9_ArithmeticOperator) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcArithmeticOperatorEnum::Class(),(size_t)*v9_ArithmeticOperator))); } if (v10_Components) {set_attribute_value(9, (*v10_Components)->generalize()); }; populate_derived(); } // Function implementations for IfcCourse std::optional< ::Ifc4x3_rc1::IfcCourseTypeEnum::Value > Ifc4x3_rc1::IfcCourse::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCourseTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCourse::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCourseTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCourseTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCourse::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[258]); } const IfcParse::entity& Ifc4x3_rc1::IfcCourse::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[258]); } // Ifc4x3_rc1::IfcCourse::IfcCourse(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcCourse::IfcCourse(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCourseTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCourseTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCourseType ::Ifc4x3_rc1::IfcCourseTypeEnum::Value Ifc4x3_rc1::IfcCourseType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCourseTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCourseType::setPredefinedType(const ::Ifc4x3_rc1::IfcCourseTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCourseTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCourseType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[259]); } const IfcParse::entity& Ifc4x3_rc1::IfcCourseType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[259]); } // Ifc4x3_rc1::IfcCourseType::IfcCourseType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcCourseType::IfcCourseType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCourseTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCourseTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCovering std::optional< ::Ifc4x3_rc1::IfcCoveringTypeEnum::Value > Ifc4x3_rc1::IfcCovering::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCoveringTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCovering::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCoveringTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCoveringTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } std::vector<::Ifc4x3_rc1::IfcRelCoversSpaces> Ifc4x3_rc1::IfcCovering::CoversSpaces() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[939], 5)); } std::vector<::Ifc4x3_rc1::IfcRelCoversBldgElements> Ifc4x3_rc1::IfcCovering::CoversElements() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[938], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcCovering::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[261]); } const IfcParse::entity& Ifc4x3_rc1::IfcCovering::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[261]); } // Ifc4x3_rc1::IfcCovering::IfcCovering(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcCovering::IfcCovering(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCoveringTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCoveringTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCoveringType ::Ifc4x3_rc1::IfcCoveringTypeEnum::Value Ifc4x3_rc1::IfcCoveringType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCoveringTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCoveringType::setPredefinedType(const ::Ifc4x3_rc1::IfcCoveringTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCoveringTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCoveringType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[262]); } const IfcParse::entity& Ifc4x3_rc1::IfcCoveringType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[262]); } // Ifc4x3_rc1::IfcCoveringType::IfcCoveringType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcCoveringType::IfcCoveringType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCoveringTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCoveringTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCrewResource std::optional< ::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value > Ifc4x3_rc1::IfcCrewResource::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCrewResourceTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcCrewResource::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCrewResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[264]); } const IfcParse::entity& Ifc4x3_rc1::IfcCrewResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[264]); } // Ifc4x3_rc1::IfcCrewResource::IfcCrewResource(const std::weak_ptr& e) : IfcConstructionResource(e) { } // Ifc4x3_rc1::IfcCrewResource::IfcCrewResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, ::Ifc4x3_rc1::IfcResourceTime v8_Usage, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v9_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v10_BaseQuantity, std::optional< ::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value > v11_PredefinedType) : IfcConstructionResource(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_Usage) {set_attribute_value(7, (*v8_Usage)); } if (v9_BaseCosts) {set_attribute_value(8, (*v9_BaseCosts)->generalize()); } if (v10_BaseQuantity) {set_attribute_value(9, (*v10_BaseQuantity)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCrewResourceType ::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value Ifc4x3_rc1::IfcCrewResourceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCrewResourceTypeEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcCrewResourceType::setPredefinedType(const ::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcCrewResourceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[265]); } const IfcParse::entity& Ifc4x3_rc1::IfcCrewResourceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[265]); } // Ifc4x3_rc1::IfcCrewResourceType::IfcCrewResourceType(const std::weak_ptr& e) : IfcConstructionResourceType(e) { } // Ifc4x3_rc1::IfcCrewResourceType::IfcCrewResourceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ResourceType, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v11_BaseQuantity, ::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Value v12_PredefinedType) : IfcConstructionResourceType(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ResourceType) {set_attribute_value(8, (*v9_ResourceType)); } if (v10_BaseCosts) {set_attribute_value(9, (*v10_BaseCosts)->generalize()); } if (v11_BaseQuantity) {set_attribute_value(10, (*v11_BaseQuantity)); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcCrewResourceTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcCsgPrimitive3D ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcCsgPrimitive3D::Position() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcCsgPrimitive3D::setPosition(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcCsgPrimitive3D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[267]); } const IfcParse::entity& Ifc4x3_rc1::IfcCsgPrimitive3D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[267]); } // Ifc4x3_rc1::IfcCsgPrimitive3D::IfcCsgPrimitive3D(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcCsgPrimitive3D::IfcCsgPrimitive3D(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Position));; populate_derived(); } // Function implementations for IfcCsgSolid ::Ifc4x3_rc1::IfcCsgSelect Ifc4x3_rc1::IfcCsgSolid::TreeRootExpression() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCsgSelect>(); } void Ifc4x3_rc1::IfcCsgSolid::setTreeRootExpression(const ::Ifc4x3_rc1::IfcCsgSelect& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcCsgSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[269]); } const IfcParse::entity& Ifc4x3_rc1::IfcCsgSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[269]); } // Ifc4x3_rc1::IfcCsgSolid::IfcCsgSolid(const std::weak_ptr& e) : IfcSolidModel(e) { } // Ifc4x3_rc1::IfcCsgSolid::IfcCsgSolid(::Ifc4x3_rc1::IfcCsgSelect v1_TreeRootExpression) : IfcSolidModel(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_TreeRootExpression));; populate_derived(); } // Function implementations for IfcCurrencyRelationship ::Ifc4x3_rc1::IfcMonetaryUnit Ifc4x3_rc1::IfcCurrencyRelationship::RelatingMonetaryUnit() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcMonetaryUnit>(); } void Ifc4x3_rc1::IfcCurrencyRelationship::setRelatingMonetaryUnit(const ::Ifc4x3_rc1::IfcMonetaryUnit& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcMonetaryUnit Ifc4x3_rc1::IfcCurrencyRelationship::RelatedMonetaryUnit() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcMonetaryUnit>(); } void Ifc4x3_rc1::IfcCurrencyRelationship::setRelatedMonetaryUnit(const ::Ifc4x3_rc1::IfcMonetaryUnit& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcCurrencyRelationship::ExchangeRate() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcCurrencyRelationship::setExchangeRate(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::optional< std::string > Ifc4x3_rc1::IfcCurrencyRelationship::RateDateTime() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcCurrencyRelationship::setRateDateTime(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } ::Ifc4x3_rc1::IfcLibraryInformation Ifc4x3_rc1::IfcCurrencyRelationship::RateSource() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcLibraryInformation{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcLibraryInformation>(); } void Ifc4x3_rc1::IfcCurrencyRelationship::setRateSource(const ::Ifc4x3_rc1::IfcLibraryInformation& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcCurrencyRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[271]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurrencyRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[271]); } // Ifc4x3_rc1::IfcCurrencyRelationship::IfcCurrencyRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcCurrencyRelationship::IfcCurrencyRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcMonetaryUnit v3_RelatingMonetaryUnit, ::Ifc4x3_rc1::IfcMonetaryUnit v4_RelatedMonetaryUnit, double v5_ExchangeRate, std::optional< std::string > v6_RateDateTime, ::Ifc4x3_rc1::IfcLibraryInformation v7_RateSource) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_RelatingMonetaryUnit));set_attribute_value(3, (v4_RelatedMonetaryUnit));set_attribute_value(4, (v5_ExchangeRate)); if (v6_RateDateTime) {set_attribute_value(5, (*v6_RateDateTime)); } if (v7_RateSource) {set_attribute_value(6, (*v7_RateSource)); }; populate_derived(); } // Function implementations for IfcCurtainWall std::optional< ::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value > Ifc4x3_rc1::IfcCurtainWall::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCurtainWallTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcCurtainWall::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCurtainWall::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[272]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurtainWall::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[272]); } // Ifc4x3_rc1::IfcCurtainWall::IfcCurtainWall(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcCurtainWall::IfcCurtainWall(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcCurtainWallType ::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value Ifc4x3_rc1::IfcCurtainWallType::PredefinedType() const { return ::Ifc4x3_rc1::IfcCurtainWallTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcCurtainWallType::setPredefinedType(const ::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcCurtainWallType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[273]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurtainWallType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[273]); } // Ifc4x3_rc1::IfcCurtainWallType::IfcCurtainWallType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcCurtainWallType::IfcCurtainWallType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcCurtainWallTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcCurve // const IfcParse::entity& Ifc4x3_rc1::IfcCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[276]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[276]); } // Ifc4x3_rc1::IfcCurve::IfcCurve(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcCurve::IfcCurve() : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcCurveBoundedPlane ::Ifc4x3_rc1::IfcPlane Ifc4x3_rc1::IfcCurveBoundedPlane::BasisSurface() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcPlane>(); } void Ifc4x3_rc1::IfcCurveBoundedPlane::setBasisSurface(const ::Ifc4x3_rc1::IfcPlane& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcCurveBoundedPlane::OuterBoundary() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcCurveBoundedPlane::setOuterBoundary(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::vector< ::Ifc4x3_rc1::IfcCurve > Ifc4x3_rc1::IfcCurveBoundedPlane::InnerBoundaries() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcCurve>(es); } void Ifc4x3_rc1::IfcCurveBoundedPlane::setInnerBoundaries(const std::vector< ::Ifc4x3_rc1::IfcCurve >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcCurveBoundedPlane::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[277]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurveBoundedPlane::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[277]); } // Ifc4x3_rc1::IfcCurveBoundedPlane::IfcCurveBoundedPlane(const std::weak_ptr& e) : IfcBoundedSurface(e) { } // Ifc4x3_rc1::IfcCurveBoundedPlane::IfcCurveBoundedPlane(::Ifc4x3_rc1::IfcPlane v1_BasisSurface, ::Ifc4x3_rc1::IfcCurve v2_OuterBoundary, std::vector< ::Ifc4x3_rc1::IfcCurve > v3_InnerBoundaries) : IfcBoundedSurface(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_BasisSurface));set_attribute_value(1, (v2_OuterBoundary));set_attribute_value(2, (v3_InnerBoundaries)->generalize());; populate_derived(); } // Function implementations for IfcCurveBoundedSurface ::Ifc4x3_rc1::IfcSurface Ifc4x3_rc1::IfcCurveBoundedSurface::BasisSurface() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcSurface>(); } void Ifc4x3_rc1::IfcCurveBoundedSurface::setBasisSurface(const ::Ifc4x3_rc1::IfcSurface& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcBoundaryCurve > Ifc4x3_rc1::IfcCurveBoundedSurface::Boundaries() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcBoundaryCurve>(es); } void Ifc4x3_rc1::IfcCurveBoundedSurface::setBoundaries(const std::vector< ::Ifc4x3_rc1::IfcBoundaryCurve >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } bool Ifc4x3_rc1::IfcCurveBoundedSurface::ImplicitOuter() const { bool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcCurveBoundedSurface::setImplicitOuter(const bool& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcCurveBoundedSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[278]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurveBoundedSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[278]); } // Ifc4x3_rc1::IfcCurveBoundedSurface::IfcCurveBoundedSurface(const std::weak_ptr& e) : IfcBoundedSurface(e) { } // Ifc4x3_rc1::IfcCurveBoundedSurface::IfcCurveBoundedSurface(::Ifc4x3_rc1::IfcSurface v1_BasisSurface, std::vector< ::Ifc4x3_rc1::IfcBoundaryCurve > v2_Boundaries, bool v3_ImplicitOuter) : IfcBoundedSurface(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_BasisSurface));set_attribute_value(1, (v2_Boundaries)->generalize());set_attribute_value(2, (v3_ImplicitOuter));; populate_derived(); } // Function implementations for IfcCurveSegment2D ::Ifc4x3_rc1::IfcCartesianPoint Ifc4x3_rc1::IfcCurveSegment2D::StartPoint() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCartesianPoint>(); } void Ifc4x3_rc1::IfcCurveSegment2D::setStartPoint(const ::Ifc4x3_rc1::IfcCartesianPoint& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcCurveSegment2D::StartDirection() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCurveSegment2D::setStartDirection(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcCurveSegment2D::SegmentLength() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcCurveSegment2D::setSegmentLength(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcCurveSegment2D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[283]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurveSegment2D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[283]); } // Ifc4x3_rc1::IfcCurveSegment2D::IfcCurveSegment2D(const std::weak_ptr& e) : IfcBoundedCurve(e) { } // Ifc4x3_rc1::IfcCurveSegment2D::IfcCurveSegment2D(::Ifc4x3_rc1::IfcCartesianPoint v1_StartPoint, double v2_StartDirection, double v3_SegmentLength) : IfcBoundedCurve(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_StartPoint));set_attribute_value(1, (v2_StartDirection));set_attribute_value(2, (v3_SegmentLength));; populate_derived(); } // Function implementations for IfcCurveStyle ::Ifc4x3_rc1::IfcCurveFontOrScaledCurveFontSelect Ifc4x3_rc1::IfcCurveStyle::CurveFont() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcCurveFontOrScaledCurveFontSelect{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCurveFontOrScaledCurveFontSelect>(); } void Ifc4x3_rc1::IfcCurveStyle::setCurveFont(const ::Ifc4x3_rc1::IfcCurveFontOrScaledCurveFontSelect& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcSizeSelect Ifc4x3_rc1::IfcCurveStyle::CurveWidth() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcSizeSelect{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcSizeSelect>(); } void Ifc4x3_rc1::IfcCurveStyle::setCurveWidth(const ::Ifc4x3_rc1::IfcSizeSelect& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcColour Ifc4x3_rc1::IfcCurveStyle::CurveColour() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcColour{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcColour>(); } void Ifc4x3_rc1::IfcCurveStyle::setCurveColour(const ::Ifc4x3_rc1::IfcColour& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< bool > Ifc4x3_rc1::IfcCurveStyle::ModelOrDraughting() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } bool v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcCurveStyle::setModelOrDraughting(const std::optional< bool >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcCurveStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[284]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurveStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[284]); } // Ifc4x3_rc1::IfcCurveStyle::IfcCurveStyle(const std::weak_ptr& e) : IfcPresentationStyle(e) { } // Ifc4x3_rc1::IfcCurveStyle::IfcCurveStyle(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcCurveFontOrScaledCurveFontSelect v2_CurveFont, ::Ifc4x3_rc1::IfcSizeSelect v3_CurveWidth, ::Ifc4x3_rc1::IfcColour v4_CurveColour, std::optional< bool > v5_ModelOrDraughting) : IfcPresentationStyle(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_CurveFont) {set_attribute_value(1, (*v2_CurveFont)); } if (v3_CurveWidth) {set_attribute_value(2, (*v3_CurveWidth)); } if (v4_CurveColour) {set_attribute_value(3, (*v4_CurveColour)); } if (v5_ModelOrDraughting) {set_attribute_value(4, (*v5_ModelOrDraughting)); }; populate_derived(); } // Function implementations for IfcCurveStyleFont std::optional< std::string > Ifc4x3_rc1::IfcCurveStyleFont::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcCurveStyleFont::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::vector< ::Ifc4x3_rc1::IfcCurveStyleFontPattern > Ifc4x3_rc1::IfcCurveStyleFont::PatternList() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcCurveStyleFontPattern>(es); } void Ifc4x3_rc1::IfcCurveStyleFont::setPatternList(const std::vector< ::Ifc4x3_rc1::IfcCurveStyleFontPattern >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcCurveStyleFont::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[285]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurveStyleFont::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[285]); } // Ifc4x3_rc1::IfcCurveStyleFont::IfcCurveStyleFont(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcCurveStyleFont::IfcCurveStyleFont(std::optional< std::string > v1_Name, std::vector< ::Ifc4x3_rc1::IfcCurveStyleFontPattern > v2_PatternList) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_PatternList)->generalize());; populate_derived(); } // Function implementations for IfcCurveStyleFontAndScaling std::optional< std::string > Ifc4x3_rc1::IfcCurveStyleFontAndScaling::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcCurveStyleFontAndScaling::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } ::Ifc4x3_rc1::IfcCurveStyleFontSelect Ifc4x3_rc1::IfcCurveStyleFontAndScaling::CurveFont() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCurveStyleFontSelect>(); } void Ifc4x3_rc1::IfcCurveStyleFontAndScaling::setCurveFont(const ::Ifc4x3_rc1::IfcCurveStyleFontSelect& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcCurveStyleFontAndScaling::CurveFontScaling() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcCurveStyleFontAndScaling::setCurveFontScaling(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcCurveStyleFontAndScaling::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[286]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurveStyleFontAndScaling::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[286]); } // Ifc4x3_rc1::IfcCurveStyleFontAndScaling::IfcCurveStyleFontAndScaling(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcCurveStyleFontAndScaling::IfcCurveStyleFontAndScaling(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcCurveStyleFontSelect v2_CurveFont, double v3_CurveFontScaling) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_CurveFont));set_attribute_value(2, (v3_CurveFontScaling));; populate_derived(); } // Function implementations for IfcCurveStyleFontPattern double Ifc4x3_rc1::IfcCurveStyleFontPattern::VisibleSegmentLength() const { double v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcCurveStyleFontPattern::setVisibleSegmentLength(const double& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcCurveStyleFontPattern::InvisibleSegmentLength() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCurveStyleFontPattern::setInvisibleSegmentLength(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcCurveStyleFontPattern::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[287]); } const IfcParse::entity& Ifc4x3_rc1::IfcCurveStyleFontPattern::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[287]); } // Ifc4x3_rc1::IfcCurveStyleFontPattern::IfcCurveStyleFontPattern(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcCurveStyleFontPattern::IfcCurveStyleFontPattern(double v1_VisibleSegmentLength, double v2_InvisibleSegmentLength) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_VisibleSegmentLength));set_attribute_value(1, (v2_InvisibleSegmentLength));; populate_derived(); } // Function implementations for IfcCylindricalSurface double Ifc4x3_rc1::IfcCylindricalSurface::Radius() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcCylindricalSurface::setRadius(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcCylindricalSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[289]); } const IfcParse::entity& Ifc4x3_rc1::IfcCylindricalSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[289]); } // Ifc4x3_rc1::IfcCylindricalSurface::IfcCylindricalSurface(const std::weak_ptr& e) : IfcElementarySurface(e) { } // Ifc4x3_rc1::IfcCylindricalSurface::IfcCylindricalSurface(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position, double v2_Radius) : IfcElementarySurface(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_Radius));; populate_derived(); } // Function implementations for IfcDamper std::optional< ::Ifc4x3_rc1::IfcDamperTypeEnum::Value > Ifc4x3_rc1::IfcDamper::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDamperTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDamper::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDamperTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDamperTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDamper::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[290]); } const IfcParse::entity& Ifc4x3_rc1::IfcDamper::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[290]); } // Ifc4x3_rc1::IfcDamper::IfcDamper(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcDamper::IfcDamper(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcDamperTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDamperTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDamperType ::Ifc4x3_rc1::IfcDamperTypeEnum::Value Ifc4x3_rc1::IfcDamperType::PredefinedType() const { return ::Ifc4x3_rc1::IfcDamperTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDamperType::setPredefinedType(const ::Ifc4x3_rc1::IfcDamperTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDamperTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcDamperType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[291]); } const IfcParse::entity& Ifc4x3_rc1::IfcDamperType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[291]); } // Ifc4x3_rc1::IfcDamperType::IfcDamperType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcDamperType::IfcDamperType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcDamperTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDamperTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcDeepFoundation // const IfcParse::entity& Ifc4x3_rc1::IfcDeepFoundation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[298]); } const IfcParse::entity& Ifc4x3_rc1::IfcDeepFoundation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[298]); } // Ifc4x3_rc1::IfcDeepFoundation::IfcDeepFoundation(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcDeepFoundation::IfcDeepFoundation(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcDeepFoundationType // const IfcParse::entity& Ifc4x3_rc1::IfcDeepFoundationType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[299]); } const IfcParse::entity& Ifc4x3_rc1::IfcDeepFoundationType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[299]); } // Ifc4x3_rc1::IfcDeepFoundationType::IfcDeepFoundationType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcDeepFoundationType::IfcDeepFoundationType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcDerivedProfileDef ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcDerivedProfileDef::ParentProfile() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcDerivedProfileDef::setParentProfile(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D Ifc4x3_rc1::IfcDerivedProfileDef::Operator() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcCartesianTransformationOperator2D>(); } void Ifc4x3_rc1::IfcDerivedProfileDef::setOperator(const ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcDerivedProfileDef::Label() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcDerivedProfileDef::setLabel(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDerivedProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[302]); } const IfcParse::entity& Ifc4x3_rc1::IfcDerivedProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[302]); } // Ifc4x3_rc1::IfcDerivedProfileDef::IfcDerivedProfileDef(const std::weak_ptr& e) : IfcProfileDef(e) { } // Ifc4x3_rc1::IfcDerivedProfileDef::IfcDerivedProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcProfileDef v3_ParentProfile, ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D v4_Operator, std::optional< std::string > v5_Label) : IfcProfileDef(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }set_attribute_value(2, (v3_ParentProfile));set_attribute_value(3, (v4_Operator)); if (v5_Label) {set_attribute_value(4, (*v5_Label)); }; populate_derived(); } // Function implementations for IfcDerivedUnit std::vector< ::Ifc4x3_rc1::IfcDerivedUnitElement > Ifc4x3_rc1::IfcDerivedUnit::Elements() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcDerivedUnitElement>(es); } void Ifc4x3_rc1::IfcDerivedUnit::setElements(const std::vector< ::Ifc4x3_rc1::IfcDerivedUnitElement >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcDerivedUnitEnum::Value Ifc4x3_rc1::IfcDerivedUnit::UnitType() const { return ::Ifc4x3_rc1::IfcDerivedUnitEnum::FromString(get_attribute_value(1)); } void Ifc4x3_rc1::IfcDerivedUnit::setUnitType(const ::Ifc4x3_rc1::IfcDerivedUnitEnum::Value& v) { set_attribute_value(1, EnumerationReference(&::Ifc4x3_rc1::IfcDerivedUnitEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcDerivedUnit::UserDefinedType() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcDerivedUnit::setUserDefinedType(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDerivedUnit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[303]); } const IfcParse::entity& Ifc4x3_rc1::IfcDerivedUnit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[303]); } // Ifc4x3_rc1::IfcDerivedUnit::IfcDerivedUnit(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcDerivedUnit::IfcDerivedUnit(std::vector< ::Ifc4x3_rc1::IfcDerivedUnitElement > v1_Elements, ::Ifc4x3_rc1::IfcDerivedUnitEnum::Value v2_UnitType, std::optional< std::string > v3_UserDefinedType) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Elements)->generalize());set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcDerivedUnitEnum::Class(),(size_t)v2_UnitType))); if (v3_UserDefinedType) {set_attribute_value(2, (*v3_UserDefinedType)); }; populate_derived(); } // Function implementations for IfcDerivedUnitElement ::Ifc4x3_rc1::IfcNamedUnit Ifc4x3_rc1::IfcDerivedUnitElement::Unit() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcNamedUnit>(); } void Ifc4x3_rc1::IfcDerivedUnitElement::setUnit(const ::Ifc4x3_rc1::IfcNamedUnit& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } int Ifc4x3_rc1::IfcDerivedUnitElement::Exponent() const { int v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcDerivedUnitElement::setExponent(const int& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcDerivedUnitElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[304]); } const IfcParse::entity& Ifc4x3_rc1::IfcDerivedUnitElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[304]); } // Ifc4x3_rc1::IfcDerivedUnitElement::IfcDerivedUnitElement(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcDerivedUnitElement::IfcDerivedUnitElement(::Ifc4x3_rc1::IfcNamedUnit v1_Unit, int v2_Exponent) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Unit));set_attribute_value(1, (v2_Exponent));; populate_derived(); } // Function implementations for IfcDimensionalExponents int Ifc4x3_rc1::IfcDimensionalExponents::LengthExponent() const { int v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcDimensionalExponents::setLengthExponent(const int& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } int Ifc4x3_rc1::IfcDimensionalExponents::MassExponent() const { int v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcDimensionalExponents::setMassExponent(const int& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } int Ifc4x3_rc1::IfcDimensionalExponents::TimeExponent() const { int v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcDimensionalExponents::setTimeExponent(const int& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } int Ifc4x3_rc1::IfcDimensionalExponents::ElectricCurrentExponent() const { int v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcDimensionalExponents::setElectricCurrentExponent(const int& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } int Ifc4x3_rc1::IfcDimensionalExponents::ThermodynamicTemperatureExponent() const { int v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcDimensionalExponents::setThermodynamicTemperatureExponent(const int& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } int Ifc4x3_rc1::IfcDimensionalExponents::AmountOfSubstanceExponent() const { int v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcDimensionalExponents::setAmountOfSubstanceExponent(const int& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } int Ifc4x3_rc1::IfcDimensionalExponents::LuminousIntensityExponent() const { int v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcDimensionalExponents::setLuminousIntensityExponent(const int& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcDimensionalExponents::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[307]); } const IfcParse::entity& Ifc4x3_rc1::IfcDimensionalExponents::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[307]); } // Ifc4x3_rc1::IfcDimensionalExponents::IfcDimensionalExponents(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcDimensionalExponents::IfcDimensionalExponents(int v1_LengthExponent, int v2_MassExponent, int v3_TimeExponent, int v4_ElectricCurrentExponent, int v5_ThermodynamicTemperatureExponent, int v6_AmountOfSubstanceExponent, int v7_LuminousIntensityExponent) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_LengthExponent));set_attribute_value(1, (v2_MassExponent));set_attribute_value(2, (v3_TimeExponent));set_attribute_value(3, (v4_ElectricCurrentExponent));set_attribute_value(4, (v5_ThermodynamicTemperatureExponent));set_attribute_value(5, (v6_AmountOfSubstanceExponent));set_attribute_value(6, (v7_LuminousIntensityExponent));; populate_derived(); } // Function implementations for IfcDirection std::vector< double > /*[2:3]*/ Ifc4x3_rc1::IfcDirection::DirectionRatios() const { std::vector< double > /*[2:3]*/ v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcDirection::setDirectionRatios(const std::vector< double > /*[2:3]*/& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcDirection::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[309]); } const IfcParse::entity& Ifc4x3_rc1::IfcDirection::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[309]); } // Ifc4x3_rc1::IfcDirection::IfcDirection(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcDirection::IfcDirection(std::vector< double > /*[2:3]*/ v1_DirectionRatios) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_DirectionRatios));; populate_derived(); } // Function implementations for IfcDirectrixCurveSweptAreaSolid ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::Directrix() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::setDirectrix(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::optional< double > Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::StartParam() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::setStartParam(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::EndParam() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::setEndParam(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[311]); } const IfcParse::entity& Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[311]); } // Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::IfcDirectrixCurveSweptAreaSolid(const std::weak_ptr& e) : IfcSweptAreaSolid(e) { } // Ifc4x3_rc1::IfcDirectrixCurveSweptAreaSolid::IfcDirectrixCurveSweptAreaSolid(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcCurve v3_Directrix, std::optional< double > v4_StartParam, std::optional< double > v5_EndParam) : IfcSweptAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_Directrix)); if (v4_StartParam) {set_attribute_value(3, (*v4_StartParam)); } if (v5_EndParam) {set_attribute_value(4, (*v5_EndParam)); }; populate_derived(); } // Function implementations for IfcDirectrixDistanceSweptAreaSolid ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::Directrix() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::setDirectrix(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcDistanceExpression Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::StartDistance() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcDistanceExpression{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcDistanceExpression>(); } void Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::setStartDistance(const ::Ifc4x3_rc1::IfcDistanceExpression& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcDistanceExpression Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::EndDistance() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcDistanceExpression{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcDistanceExpression>(); } void Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::setEndDistance(const ::Ifc4x3_rc1::IfcDistanceExpression& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[312]); } const IfcParse::entity& Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[312]); } // Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::IfcDirectrixDistanceSweptAreaSolid(const std::weak_ptr& e) : IfcSweptAreaSolid(e) { } // Ifc4x3_rc1::IfcDirectrixDistanceSweptAreaSolid::IfcDirectrixDistanceSweptAreaSolid(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcCurve v3_Directrix, ::Ifc4x3_rc1::IfcDistanceExpression v4_StartDistance, ::Ifc4x3_rc1::IfcDistanceExpression v5_EndDistance) : IfcSweptAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_Directrix)); if (v4_StartDistance) {set_attribute_value(3, (*v4_StartDistance)); } if (v5_EndDistance) {set_attribute_value(4, (*v5_EndDistance)); }; populate_derived(); } // Function implementations for IfcDiscreteAccessory std::optional< ::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value > Ifc4x3_rc1::IfcDiscreteAccessory::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDiscreteAccessory::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDiscreteAccessory::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[313]); } const IfcParse::entity& Ifc4x3_rc1::IfcDiscreteAccessory::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[313]); } // Ifc4x3_rc1::IfcDiscreteAccessory::IfcDiscreteAccessory(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcDiscreteAccessory::IfcDiscreteAccessory(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value > v9_PredefinedType) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDiscreteAccessoryType ::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value Ifc4x3_rc1::IfcDiscreteAccessoryType::PredefinedType() const { return ::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDiscreteAccessoryType::setPredefinedType(const ::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcDiscreteAccessoryType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[314]); } const IfcParse::entity& Ifc4x3_rc1::IfcDiscreteAccessoryType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[314]); } // Ifc4x3_rc1::IfcDiscreteAccessoryType::IfcDiscreteAccessoryType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcDiscreteAccessoryType::IfcDiscreteAccessoryType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Value v10_PredefinedType) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcDistanceExpression double Ifc4x3_rc1::IfcDistanceExpression::DistanceAlong() const { double v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcDistanceExpression::setDistanceAlong(const double& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< double > Ifc4x3_rc1::IfcDistanceExpression::OffsetLateral() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcDistanceExpression::setOffsetLateral(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcDistanceExpression::OffsetVertical() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcDistanceExpression::setOffsetVertical(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcDistanceExpression::OffsetLongitudinal() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcDistanceExpression::setOffsetLongitudinal(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< bool > Ifc4x3_rc1::IfcDistanceExpression::AlongHorizontal() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } bool v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcDistanceExpression::setAlongHorizontal(const std::optional< bool >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDistanceExpression::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[316]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistanceExpression::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[316]); } // Ifc4x3_rc1::IfcDistanceExpression::IfcDistanceExpression(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcDistanceExpression::IfcDistanceExpression(double v1_DistanceAlong, std::optional< double > v2_OffsetLateral, std::optional< double > v3_OffsetVertical, std::optional< double > v4_OffsetLongitudinal, std::optional< bool > v5_AlongHorizontal) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_DistanceAlong)); if (v2_OffsetLateral) {set_attribute_value(1, (*v2_OffsetLateral)); } if (v3_OffsetVertical) {set_attribute_value(2, (*v3_OffsetVertical)); } if (v4_OffsetLongitudinal) {set_attribute_value(3, (*v4_OffsetLongitudinal)); } if (v5_AlongHorizontal) {set_attribute_value(4, (*v5_AlongHorizontal)); }; populate_derived(); } // Function implementations for IfcDistributionBoard std::optional< ::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value > Ifc4x3_rc1::IfcDistributionBoard::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDistributionBoard::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionBoard::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[317]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionBoard::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[317]); } // Ifc4x3_rc1::IfcDistributionBoard::IfcDistributionBoard(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcDistributionBoard::IfcDistributionBoard(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDistributionBoardType ::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value Ifc4x3_rc1::IfcDistributionBoardType::PredefinedType() const { return ::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDistributionBoardType::setPredefinedType(const ::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionBoardType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[318]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionBoardType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[318]); } // Ifc4x3_rc1::IfcDistributionBoardType::IfcDistributionBoardType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcDistributionBoardType::IfcDistributionBoardType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDistributionBoardTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcDistributionChamberElement std::optional< ::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value > Ifc4x3_rc1::IfcDistributionChamberElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDistributionChamberElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionChamberElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[320]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionChamberElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[320]); } // Ifc4x3_rc1::IfcDistributionChamberElement::IfcDistributionChamberElement(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcDistributionChamberElement::IfcDistributionChamberElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value > v9_PredefinedType) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDistributionChamberElementType ::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value Ifc4x3_rc1::IfcDistributionChamberElementType::PredefinedType() const { return ::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDistributionChamberElementType::setPredefinedType(const ::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionChamberElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[321]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionChamberElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[321]); } // Ifc4x3_rc1::IfcDistributionChamberElementType::IfcDistributionChamberElementType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcDistributionChamberElementType::IfcDistributionChamberElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Value v10_PredefinedType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcDistributionCircuit // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionCircuit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[323]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionCircuit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[323]); } // Ifc4x3_rc1::IfcDistributionCircuit::IfcDistributionCircuit(const std::weak_ptr& e) : IfcDistributionSystem(e) { } // Ifc4x3_rc1::IfcDistributionCircuit::IfcDistributionCircuit(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_LongName, std::optional< ::Ifc4x3_rc1::IfcDistributionSystemEnum::Value > v7_PredefinedType) : IfcDistributionSystem(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_LongName) {set_attribute_value(5, (*v6_LongName)); } if (v7_PredefinedType) {set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcDistributionSystemEnum::Class(),(size_t)*v7_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDistributionControlElement std::vector<::Ifc4x3_rc1::IfcRelFlowControlElements> Ifc4x3_rc1::IfcDistributionControlElement::AssignedToFlowElement() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[948], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionControlElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[324]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionControlElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[324]); } // Ifc4x3_rc1::IfcDistributionControlElement::IfcDistributionControlElement(const std::weak_ptr& e) : IfcDistributionElement(e) { } // Ifc4x3_rc1::IfcDistributionControlElement::IfcDistributionControlElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcDistributionControlElementType // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionControlElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[325]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionControlElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[325]); } // Ifc4x3_rc1::IfcDistributionControlElementType::IfcDistributionControlElementType(const std::weak_ptr& e) : IfcDistributionElementType(e) { } // Ifc4x3_rc1::IfcDistributionControlElementType::IfcDistributionControlElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcDistributionElement std::vector<::Ifc4x3_rc1::IfcRelConnectsPortToElement> Ifc4x3_rc1::IfcDistributionElement::HasPorts() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[932], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[326]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[326]); } // Ifc4x3_rc1::IfcDistributionElement::IfcDistributionElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcDistributionElement::IfcDistributionElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcDistributionElementType // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[327]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[327]); } // Ifc4x3_rc1::IfcDistributionElementType::IfcDistributionElementType(const std::weak_ptr& e) : IfcElementType(e) { } // Ifc4x3_rc1::IfcDistributionElementType::IfcDistributionElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcDistributionFlowElement std::vector<::Ifc4x3_rc1::IfcRelFlowControlElements> Ifc4x3_rc1::IfcDistributionFlowElement::HasControlElements() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[948], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionFlowElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[328]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionFlowElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[328]); } // Ifc4x3_rc1::IfcDistributionFlowElement::IfcDistributionFlowElement(const std::weak_ptr& e) : IfcDistributionElement(e) { } // Ifc4x3_rc1::IfcDistributionFlowElement::IfcDistributionFlowElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcDistributionFlowElementType // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionFlowElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[329]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionFlowElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[329]); } // Ifc4x3_rc1::IfcDistributionFlowElementType::IfcDistributionFlowElementType(const std::weak_ptr& e) : IfcDistributionElementType(e) { } // Ifc4x3_rc1::IfcDistributionFlowElementType::IfcDistributionFlowElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcDistributionPort std::optional< ::Ifc4x3_rc1::IfcFlowDirectionEnum::Value > Ifc4x3_rc1::IfcDistributionPort::FlowDirection() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFlowDirectionEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcDistributionPort::setFlowDirection(const std::optional< ::Ifc4x3_rc1::IfcFlowDirectionEnum::Value >& v) { if (v) {set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcFlowDirectionEnum::Class(), (size_t) *v));} else {unset_attribute_value(7);} } std::optional< ::Ifc4x3_rc1::IfcDistributionPortTypeEnum::Value > Ifc4x3_rc1::IfcDistributionPort::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDistributionPortTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDistributionPort::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDistributionPortTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDistributionPortTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } std::optional< ::Ifc4x3_rc1::IfcDistributionSystemEnum::Value > Ifc4x3_rc1::IfcDistributionPort::SystemType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDistributionSystemEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDistributionPort::setSystemType(const std::optional< ::Ifc4x3_rc1::IfcDistributionSystemEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDistributionSystemEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionPort::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[330]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionPort::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[330]); } // Ifc4x3_rc1::IfcDistributionPort::IfcDistributionPort(const std::weak_ptr& e) : IfcPort(e) { } // Ifc4x3_rc1::IfcDistributionPort::IfcDistributionPort(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< ::Ifc4x3_rc1::IfcFlowDirectionEnum::Value > v8_FlowDirection, std::optional< ::Ifc4x3_rc1::IfcDistributionPortTypeEnum::Value > v9_PredefinedType, std::optional< ::Ifc4x3_rc1::IfcDistributionSystemEnum::Value > v10_SystemType) : IfcPort(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_FlowDirection) {set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcFlowDirectionEnum::Class(),(size_t)*v8_FlowDirection))); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDistributionPortTypeEnum::Class(),(size_t)*v9_PredefinedType))); } if (v10_SystemType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDistributionSystemEnum::Class(),(size_t)*v10_SystemType))); }; populate_derived(); } // Function implementations for IfcDistributionSystem std::optional< std::string > Ifc4x3_rc1::IfcDistributionSystem::LongName() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcDistributionSystem::setLongName(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< ::Ifc4x3_rc1::IfcDistributionSystemEnum::Value > Ifc4x3_rc1::IfcDistributionSystem::PredefinedType() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDistributionSystemEnum::FromString(get_attribute_value(6)); } void Ifc4x3_rc1::IfcDistributionSystem::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDistributionSystemEnum::Value >& v) { if (v) {set_attribute_value(6, EnumerationReference(&::Ifc4x3_rc1::IfcDistributionSystemEnum::Class(), (size_t) *v));} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDistributionSystem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[332]); } const IfcParse::entity& Ifc4x3_rc1::IfcDistributionSystem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[332]); } // Ifc4x3_rc1::IfcDistributionSystem::IfcDistributionSystem(const std::weak_ptr& e) : IfcSystem(e) { } // Ifc4x3_rc1::IfcDistributionSystem::IfcDistributionSystem(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_LongName, std::optional< ::Ifc4x3_rc1::IfcDistributionSystemEnum::Value > v7_PredefinedType) : IfcSystem(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_LongName) {set_attribute_value(5, (*v6_LongName)); } if (v7_PredefinedType) {set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcDistributionSystemEnum::Class(),(size_t)*v7_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDocumentInformation std::string Ifc4x3_rc1::IfcDocumentInformation::Identification() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setIdentification(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::string Ifc4x3_rc1::IfcDocumentInformation::Name() const { std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setName(const std::string& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::Description() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::Location() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setLocation(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::Purpose() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setPurpose(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::IntendedUse() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setIntendedUse(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::Scope() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setScope(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::Revision() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setRevision(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcDocumentInformation::DocumentOwner() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcActorSelect{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcDocumentInformation::setDocumentOwner(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } std::optional< std::vector< ::Ifc4x3_rc1::IfcActorSelect > > Ifc4x3_rc1::IfcDocumentInformation::Editors() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(9); return cast_vector<::Ifc4x3_rc1::IfcActorSelect>(es); } void Ifc4x3_rc1::IfcDocumentInformation::setEditors(const std::optional< std::vector< ::Ifc4x3_rc1::IfcActorSelect > >& v) { if (v) {set_attribute_value(9, cast_vector(*v));} else {unset_attribute_value(9);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::CreationTime() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setCreationTime(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::LastRevisionTime() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } std::string v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setLastRevisionTime(const std::optional< std::string >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::ElectronicFormat() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setElectronicFormat(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::ValidFrom() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } std::string v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setValidFrom(const std::optional< std::string >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::ValidUntil() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } std::string v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcDocumentInformation::setValidUntil(const std::optional< std::string >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } std::optional< ::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value > Ifc4x3_rc1::IfcDocumentInformation::Confidentiality() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::FromString(get_attribute_value(15)); } void Ifc4x3_rc1::IfcDocumentInformation::setConfidentiality(const std::optional< ::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value >& v) { if (v) {set_attribute_value(15, EnumerationReference(&::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Class(), (size_t) *v));} else {unset_attribute_value(15);} } std::optional< ::Ifc4x3_rc1::IfcDocumentStatusEnum::Value > Ifc4x3_rc1::IfcDocumentInformation::Status() const { if(get_attribute_value(16).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDocumentStatusEnum::FromString(get_attribute_value(16)); } void Ifc4x3_rc1::IfcDocumentInformation::setStatus(const std::optional< ::Ifc4x3_rc1::IfcDocumentStatusEnum::Value >& v) { if (v) {set_attribute_value(16, EnumerationReference(&::Ifc4x3_rc1::IfcDocumentStatusEnum::Class(), (size_t) *v));} else {unset_attribute_value(16);} } std::vector<::Ifc4x3_rc1::IfcRelAssociatesDocument> Ifc4x3_rc1::IfcDocumentInformation::DocumentInfoForObjects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[923], 5)); } std::vector<::Ifc4x3_rc1::IfcDocumentReference> Ifc4x3_rc1::IfcDocumentInformation::HasDocumentReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[337], 4)); } std::vector<::Ifc4x3_rc1::IfcDocumentInformationRelationship> Ifc4x3_rc1::IfcDocumentInformation::IsPointedTo() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[336], 3)); } std::vector<::Ifc4x3_rc1::IfcDocumentInformationRelationship> Ifc4x3_rc1::IfcDocumentInformation::IsPointer() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[336], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcDocumentInformation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[335]); } const IfcParse::entity& Ifc4x3_rc1::IfcDocumentInformation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[335]); } // Ifc4x3_rc1::IfcDocumentInformation::IfcDocumentInformation(const std::weak_ptr& e) : IfcExternalInformation(e) { } // Ifc4x3_rc1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, std::optional< std::string > v3_Description, std::optional< std::string > v4_Location, std::optional< std::string > v5_Purpose, std::optional< std::string > v6_IntendedUse, std::optional< std::string > v7_Scope, std::optional< std::string > v8_Revision, ::Ifc4x3_rc1::IfcActorSelect v9_DocumentOwner, std::optional< std::vector< ::Ifc4x3_rc1::IfcActorSelect > > v10_Editors, std::optional< std::string > v11_CreationTime, std::optional< std::string > v12_LastRevisionTime, std::optional< std::string > v13_ElectronicFormat, std::optional< std::string > v14_ValidFrom, std::optional< std::string > v15_ValidUntil, std::optional< ::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, std::optional< ::Ifc4x3_rc1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation(const std::weak_ptr&(in_memory_attribute_storage(17))) { set_attribute_value(0, (v1_Identification));set_attribute_value(1, (v2_Name)); if (v3_Description) {set_attribute_value(2, (*v3_Description)); } if (v4_Location) {set_attribute_value(3, (*v4_Location)); } if (v5_Purpose) {set_attribute_value(4, (*v5_Purpose)); } if (v6_IntendedUse) {set_attribute_value(5, (*v6_IntendedUse)); } if (v7_Scope) {set_attribute_value(6, (*v7_Scope)); } if (v8_Revision) {set_attribute_value(7, (*v8_Revision)); } if (v9_DocumentOwner) {set_attribute_value(8, (*v9_DocumentOwner)); } if (v10_Editors) {set_attribute_value(9, (*v10_Editors)->generalize()); } if (v11_CreationTime) {set_attribute_value(10, (*v11_CreationTime)); } if (v12_LastRevisionTime) {set_attribute_value(11, (*v12_LastRevisionTime)); } if (v13_ElectronicFormat) {set_attribute_value(12, (*v13_ElectronicFormat)); } if (v14_ValidFrom) {set_attribute_value(13, (*v14_ValidFrom)); } if (v15_ValidUntil) {set_attribute_value(14, (*v15_ValidUntil)); } if (v16_Confidentiality) {set_attribute_value(15, (EnumerationReference(&::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Class(),(size_t)*v16_Confidentiality))); } if (v17_Status) {set_attribute_value(16, (EnumerationReference(&::Ifc4x3_rc1::IfcDocumentStatusEnum::Class(),(size_t)*v17_Status))); }; populate_derived(); } // Function implementations for IfcDocumentInformationRelationship ::Ifc4x3_rc1::IfcDocumentInformation Ifc4x3_rc1::IfcDocumentInformationRelationship::RelatingDocument() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcDocumentInformation>(); } void Ifc4x3_rc1::IfcDocumentInformationRelationship::setRelatingDocument(const ::Ifc4x3_rc1::IfcDocumentInformation& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< ::Ifc4x3_rc1::IfcDocumentInformation > Ifc4x3_rc1::IfcDocumentInformationRelationship::RelatedDocuments() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcDocumentInformation>(es); } void Ifc4x3_rc1::IfcDocumentInformationRelationship::setRelatedDocuments(const std::vector< ::Ifc4x3_rc1::IfcDocumentInformation >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcDocumentInformationRelationship::RelationshipType() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcDocumentInformationRelationship::setRelationshipType(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDocumentInformationRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[336]); } const IfcParse::entity& Ifc4x3_rc1::IfcDocumentInformationRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[336]); } // Ifc4x3_rc1::IfcDocumentInformationRelationship::IfcDocumentInformationRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcDocumentInformationRelationship::IfcDocumentInformationRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcDocumentInformation v3_RelatingDocument, std::vector< ::Ifc4x3_rc1::IfcDocumentInformation > v4_RelatedDocuments, std::optional< std::string > v5_RelationshipType) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_RelatingDocument));set_attribute_value(3, (v4_RelatedDocuments)->generalize()); if (v5_RelationshipType) {set_attribute_value(4, (*v5_RelationshipType)); }; populate_derived(); } // Function implementations for IfcDocumentReference std::optional< std::string > Ifc4x3_rc1::IfcDocumentReference::Description() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcDocumentReference::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } ::Ifc4x3_rc1::IfcDocumentInformation Ifc4x3_rc1::IfcDocumentReference::ReferencedDocument() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcDocumentInformation{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcDocumentInformation>(); } void Ifc4x3_rc1::IfcDocumentReference::setReferencedDocument(const ::Ifc4x3_rc1::IfcDocumentInformation& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector<::Ifc4x3_rc1::IfcRelAssociatesDocument> Ifc4x3_rc1::IfcDocumentReference::DocumentRefForObjects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[923], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcDocumentReference::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[337]); } const IfcParse::entity& Ifc4x3_rc1::IfcDocumentReference::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[337]); } // Ifc4x3_rc1::IfcDocumentReference::IfcDocumentReference(const std::weak_ptr& e) : IfcExternalReference(e) { } // Ifc4x3_rc1::IfcDocumentReference::IfcDocumentReference(std::optional< std::string > v1_Location, std::optional< std::string > v2_Identification, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcDocumentInformation v5_ReferencedDocument) : IfcExternalReference(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Location) {set_attribute_value(0, (*v1_Location)); } if (v2_Identification) {set_attribute_value(1, (*v2_Identification)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ReferencedDocument) {set_attribute_value(4, (*v5_ReferencedDocument)); }; populate_derived(); } // Function implementations for IfcDoor std::optional< double > Ifc4x3_rc1::IfcDoor::OverallHeight() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcDoor::setOverallHeight(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< double > Ifc4x3_rc1::IfcDoor::OverallWidth() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcDoor::setOverallWidth(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< ::Ifc4x3_rc1::IfcDoorTypeEnum::Value > Ifc4x3_rc1::IfcDoor::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDoorTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcDoor::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDoorTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } std::optional< ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value > Ifc4x3_rc1::IfcDoor::OperationType() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcDoor::setOperationType(const std::optional< ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value >& v) { if (v) {set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Class(), (size_t) *v));} else {unset_attribute_value(11);} } std::optional< std::string > Ifc4x3_rc1::IfcDoor::UserDefinedOperationType() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcDoor::setUserDefinedOperationType(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDoor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[340]); } const IfcParse::entity& Ifc4x3_rc1::IfcDoor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[340]); } // Ifc4x3_rc1::IfcDoor::IfcDoor(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcDoor::IfcDoor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< double > v9_OverallHeight, std::optional< double > v10_OverallWidth, std::optional< ::Ifc4x3_rc1::IfcDoorTypeEnum::Value > v11_PredefinedType, std::optional< ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value > v12_OperationType, std::optional< std::string > v13_UserDefinedOperationType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_OverallHeight) {set_attribute_value(8, (*v9_OverallHeight)); } if (v10_OverallWidth) {set_attribute_value(9, (*v10_OverallWidth)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeEnum::Class(),(size_t)*v11_PredefinedType))); } if (v12_OperationType) {set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Class(),(size_t)*v12_OperationType))); } if (v13_UserDefinedOperationType) {set_attribute_value(12, (*v13_UserDefinedOperationType)); }; populate_derived(); } // Function implementations for IfcDoorLiningProperties std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::LiningDepth() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setLiningDepth(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::LiningThickness() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setLiningThickness(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::ThresholdDepth() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setThresholdDepth(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::ThresholdThickness() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setThresholdThickness(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::TransomThickness() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setTransomThickness(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::TransomOffset() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setTransomOffset(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::LiningOffset() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setLiningOffset(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::ThresholdOffset() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setThresholdOffset(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::CasingThickness() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setCasingThickness(const std::optional< double >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::CasingDepth() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } double v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setCasingDepth(const std::optional< double >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } ::Ifc4x3_rc1::IfcShapeAspect Ifc4x3_rc1::IfcDoorLiningProperties::ShapeAspectStyle() const { if(get_attribute_value(14).isNull()) { return ::Ifc4x3_rc1::IfcShapeAspect{}; } return ((express::Base)(get_attribute_value(14))).as<::Ifc4x3_rc1::IfcShapeAspect>(); } void Ifc4x3_rc1::IfcDoorLiningProperties::setShapeAspectStyle(const ::Ifc4x3_rc1::IfcShapeAspect& v) { set_attribute_value(14, v);if constexpr (false)unset_attribute_value(14); } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::LiningToPanelOffsetX() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } double v = get_attribute_value(15); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setLiningToPanelOffsetX(const std::optional< double >& v) { if (v) {set_attribute_value(15, *v);} else {unset_attribute_value(15);} } std::optional< double > Ifc4x3_rc1::IfcDoorLiningProperties::LiningToPanelOffsetY() const { if(get_attribute_value(16).isNull()) { return std::nullopt; } double v = get_attribute_value(16); return v; } void Ifc4x3_rc1::IfcDoorLiningProperties::setLiningToPanelOffsetY(const std::optional< double >& v) { if (v) {set_attribute_value(16, *v);} else {unset_attribute_value(16);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDoorLiningProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[341]); } const IfcParse::entity& Ifc4x3_rc1::IfcDoorLiningProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[341]); } // Ifc4x3_rc1::IfcDoorLiningProperties::IfcDoorLiningProperties(const std::weak_ptr& e) : IfcPreDefinedPropertySet(e) { } // Ifc4x3_rc1::IfcDoorLiningProperties::IfcDoorLiningProperties(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< double > v5_LiningDepth, std::optional< double > v6_LiningThickness, std::optional< double > v7_ThresholdDepth, std::optional< double > v8_ThresholdThickness, std::optional< double > v9_TransomThickness, std::optional< double > v10_TransomOffset, std::optional< double > v11_LiningOffset, std::optional< double > v12_ThresholdOffset, std::optional< double > v13_CasingThickness, std::optional< double > v14_CasingDepth, ::Ifc4x3_rc1::IfcShapeAspect v15_ShapeAspectStyle, std::optional< double > v16_LiningToPanelOffsetX, std::optional< double > v17_LiningToPanelOffsetY) : IfcPreDefinedPropertySet(const std::weak_ptr&(in_memory_attribute_storage(17))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_LiningDepth) {set_attribute_value(4, (*v5_LiningDepth)); } if (v6_LiningThickness) {set_attribute_value(5, (*v6_LiningThickness)); } if (v7_ThresholdDepth) {set_attribute_value(6, (*v7_ThresholdDepth)); } if (v8_ThresholdThickness) {set_attribute_value(7, (*v8_ThresholdThickness)); } if (v9_TransomThickness) {set_attribute_value(8, (*v9_TransomThickness)); } if (v10_TransomOffset) {set_attribute_value(9, (*v10_TransomOffset)); } if (v11_LiningOffset) {set_attribute_value(10, (*v11_LiningOffset)); } if (v12_ThresholdOffset) {set_attribute_value(11, (*v12_ThresholdOffset)); } if (v13_CasingThickness) {set_attribute_value(12, (*v13_CasingThickness)); } if (v14_CasingDepth) {set_attribute_value(13, (*v14_CasingDepth)); } if (v15_ShapeAspectStyle) {set_attribute_value(14, (*v15_ShapeAspectStyle)); } if (v16_LiningToPanelOffsetX) {set_attribute_value(15, (*v16_LiningToPanelOffsetX)); } if (v17_LiningToPanelOffsetY) {set_attribute_value(16, (*v17_LiningToPanelOffsetY)); }; populate_derived(); } // Function implementations for IfcDoorPanelProperties std::optional< double > Ifc4x3_rc1::IfcDoorPanelProperties::PanelDepth() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcDoorPanelProperties::setPanelDepth(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } ::Ifc4x3_rc1::IfcDoorPanelOperationEnum::Value Ifc4x3_rc1::IfcDoorPanelProperties::PanelOperation() const { return ::Ifc4x3_rc1::IfcDoorPanelOperationEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcDoorPanelProperties::setPanelOperation(const ::Ifc4x3_rc1::IfcDoorPanelOperationEnum::Value& v) { set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcDoorPanelOperationEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(5); } std::optional< double > Ifc4x3_rc1::IfcDoorPanelProperties::PanelWidth() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcDoorPanelProperties::setPanelWidth(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } ::Ifc4x3_rc1::IfcDoorPanelPositionEnum::Value Ifc4x3_rc1::IfcDoorPanelProperties::PanelPosition() const { return ::Ifc4x3_rc1::IfcDoorPanelPositionEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcDoorPanelProperties::setPanelPosition(const ::Ifc4x3_rc1::IfcDoorPanelPositionEnum::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcDoorPanelPositionEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcShapeAspect Ifc4x3_rc1::IfcDoorPanelProperties::ShapeAspectStyle() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcShapeAspect{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcShapeAspect>(); } void Ifc4x3_rc1::IfcDoorPanelProperties::setShapeAspectStyle(const ::Ifc4x3_rc1::IfcShapeAspect& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcDoorPanelProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[344]); } const IfcParse::entity& Ifc4x3_rc1::IfcDoorPanelProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[344]); } // Ifc4x3_rc1::IfcDoorPanelProperties::IfcDoorPanelProperties(const std::weak_ptr& e) : IfcPreDefinedPropertySet(e) { } // Ifc4x3_rc1::IfcDoorPanelProperties::IfcDoorPanelProperties(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< double > v5_PanelDepth, ::Ifc4x3_rc1::IfcDoorPanelOperationEnum::Value v6_PanelOperation, std::optional< double > v7_PanelWidth, ::Ifc4x3_rc1::IfcDoorPanelPositionEnum::Value v8_PanelPosition, ::Ifc4x3_rc1::IfcShapeAspect v9_ShapeAspectStyle) : IfcPreDefinedPropertySet(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_PanelDepth) {set_attribute_value(4, (*v5_PanelDepth)); }set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorPanelOperationEnum::Class(),(size_t)v6_PanelOperation))); if (v7_PanelWidth) {set_attribute_value(6, (*v7_PanelWidth)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorPanelPositionEnum::Class(),(size_t)v8_PanelPosition))); if (v9_ShapeAspectStyle) {set_attribute_value(8, (*v9_ShapeAspectStyle)); }; populate_derived(); } // Function implementations for IfcDoorStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcDoorStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[345]); } const IfcParse::entity& Ifc4x3_rc1::IfcDoorStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[345]); } // Ifc4x3_rc1::IfcDoorStandardCase::IfcDoorStandardCase(const std::weak_ptr& e) : IfcDoor(e) { } // Ifc4x3_rc1::IfcDoorStandardCase::IfcDoorStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< double > v9_OverallHeight, std::optional< double > v10_OverallWidth, std::optional< ::Ifc4x3_rc1::IfcDoorTypeEnum::Value > v11_PredefinedType, std::optional< ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value > v12_OperationType, std::optional< std::string > v13_UserDefinedOperationType) : IfcDoor(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_OverallHeight) {set_attribute_value(8, (*v9_OverallHeight)); } if (v10_OverallWidth) {set_attribute_value(9, (*v10_OverallWidth)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeEnum::Class(),(size_t)*v11_PredefinedType))); } if (v12_OperationType) {set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Class(),(size_t)*v12_OperationType))); } if (v13_UserDefinedOperationType) {set_attribute_value(12, (*v13_UserDefinedOperationType)); }; populate_derived(); } // Function implementations for IfcDoorStyle ::Ifc4x3_rc1::IfcDoorStyleOperationEnum::Value Ifc4x3_rc1::IfcDoorStyle::OperationType() const { return ::Ifc4x3_rc1::IfcDoorStyleOperationEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDoorStyle::setOperationType(const ::Ifc4x3_rc1::IfcDoorStyleOperationEnum::Value& v) { set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDoorStyleOperationEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(8); } ::Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Value Ifc4x3_rc1::IfcDoorStyle::ConstructionType() const { return ::Ifc4x3_rc1::IfcDoorStyleConstructionEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDoorStyle::setConstructionType(const ::Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } bool Ifc4x3_rc1::IfcDoorStyle::ParameterTakesPrecedence() const { bool v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcDoorStyle::setParameterTakesPrecedence(const bool& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } bool Ifc4x3_rc1::IfcDoorStyle::Sizeable() const { bool v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcDoorStyle::setSizeable(const bool& v) { set_attribute_value(11, v);if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcDoorStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[346]); } const IfcParse::entity& Ifc4x3_rc1::IfcDoorStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[346]); } // Ifc4x3_rc1::IfcDoorStyle::IfcDoorStyle(const std::weak_ptr& e) : IfcTypeProduct(e) { } // Ifc4x3_rc1::IfcDoorStyle::IfcDoorStyle(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, ::Ifc4x3_rc1::IfcDoorStyleOperationEnum::Value v9_OperationType, ::Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Value v10_ConstructionType, bool v11_ParameterTakesPrecedence, bool v12_Sizeable) : IfcTypeProduct(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorStyleOperationEnum::Class(),(size_t)v9_OperationType)));set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorStyleConstructionEnum::Class(),(size_t)v10_ConstructionType)));set_attribute_value(10, (v11_ParameterTakesPrecedence));set_attribute_value(11, (v12_Sizeable));; populate_derived(); } // Function implementations for IfcDoorType ::Ifc4x3_rc1::IfcDoorTypeEnum::Value Ifc4x3_rc1::IfcDoorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcDoorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDoorType::setPredefinedType(const ::Ifc4x3_rc1::IfcDoorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value Ifc4x3_rc1::IfcDoorType::OperationType() const { return ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcDoorType::setOperationType(const ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value& v) { set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(10); } std::optional< bool > Ifc4x3_rc1::IfcDoorType::ParameterTakesPrecedence() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } bool v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcDoorType::setParameterTakesPrecedence(const std::optional< bool >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< std::string > Ifc4x3_rc1::IfcDoorType::UserDefinedOperationType() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcDoorType::setUserDefinedOperationType(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDoorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[349]); } const IfcParse::entity& Ifc4x3_rc1::IfcDoorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[349]); } // Ifc4x3_rc1::IfcDoorType::IfcDoorType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcDoorType::IfcDoorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcDoorTypeEnum::Value v10_PredefinedType, ::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Value v11_OperationType, std::optional< bool > v12_ParameterTakesPrecedence, std::optional< std::string > v13_UserDefinedOperationType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeEnum::Class(),(size_t)v10_PredefinedType)));set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcDoorTypeOperationEnum::Class(),(size_t)v11_OperationType))); if (v12_ParameterTakesPrecedence) {set_attribute_value(11, (*v12_ParameterTakesPrecedence)); } if (v13_UserDefinedOperationType) {set_attribute_value(12, (*v13_UserDefinedOperationType)); }; populate_derived(); } // Function implementations for IfcDraughtingPreDefinedColour // const IfcParse::entity& Ifc4x3_rc1::IfcDraughtingPreDefinedColour::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[353]); } const IfcParse::entity& Ifc4x3_rc1::IfcDraughtingPreDefinedColour::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[353]); } // Ifc4x3_rc1::IfcDraughtingPreDefinedColour::IfcDraughtingPreDefinedColour(const std::weak_ptr& e) : IfcPreDefinedColour(e) { } // Ifc4x3_rc1::IfcDraughtingPreDefinedColour::IfcDraughtingPreDefinedColour(std::string v1_Name) : IfcPreDefinedColour(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Name));; populate_derived(); } // Function implementations for IfcDraughtingPreDefinedCurveFont // const IfcParse::entity& Ifc4x3_rc1::IfcDraughtingPreDefinedCurveFont::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[354]); } const IfcParse::entity& Ifc4x3_rc1::IfcDraughtingPreDefinedCurveFont::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[354]); } // Ifc4x3_rc1::IfcDraughtingPreDefinedCurveFont::IfcDraughtingPreDefinedCurveFont(const std::weak_ptr& e) : IfcPreDefinedCurveFont(e) { } // Ifc4x3_rc1::IfcDraughtingPreDefinedCurveFont::IfcDraughtingPreDefinedCurveFont(std::string v1_Name) : IfcPreDefinedCurveFont(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Name));; populate_derived(); } // Function implementations for IfcDuctFitting std::optional< ::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value > Ifc4x3_rc1::IfcDuctFitting::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDuctFittingTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDuctFitting::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDuctFitting::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[355]); } const IfcParse::entity& Ifc4x3_rc1::IfcDuctFitting::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[355]); } // Ifc4x3_rc1::IfcDuctFitting::IfcDuctFitting(const std::weak_ptr& e) : IfcFlowFitting(e) { } // Ifc4x3_rc1::IfcDuctFitting::IfcDuctFitting(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value > v9_PredefinedType) : IfcFlowFitting(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDuctFittingType ::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value Ifc4x3_rc1::IfcDuctFittingType::PredefinedType() const { return ::Ifc4x3_rc1::IfcDuctFittingTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDuctFittingType::setPredefinedType(const ::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcDuctFittingType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[356]); } const IfcParse::entity& Ifc4x3_rc1::IfcDuctFittingType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[356]); } // Ifc4x3_rc1::IfcDuctFittingType::IfcDuctFittingType(const std::weak_ptr& e) : IfcFlowFittingType(e) { } // Ifc4x3_rc1::IfcDuctFittingType::IfcDuctFittingType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Value v10_PredefinedType) : IfcFlowFittingType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDuctFittingTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcDuctSegment std::optional< ::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value > Ifc4x3_rc1::IfcDuctSegment::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDuctSegment::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDuctSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[358]); } const IfcParse::entity& Ifc4x3_rc1::IfcDuctSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[358]); } // Ifc4x3_rc1::IfcDuctSegment::IfcDuctSegment(const std::weak_ptr& e) : IfcFlowSegment(e) { } // Ifc4x3_rc1::IfcDuctSegment::IfcDuctSegment(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value > v9_PredefinedType) : IfcFlowSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDuctSegmentType ::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value Ifc4x3_rc1::IfcDuctSegmentType::PredefinedType() const { return ::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDuctSegmentType::setPredefinedType(const ::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcDuctSegmentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[359]); } const IfcParse::entity& Ifc4x3_rc1::IfcDuctSegmentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[359]); } // Ifc4x3_rc1::IfcDuctSegmentType::IfcDuctSegmentType(const std::weak_ptr& e) : IfcFlowSegmentType(e) { } // Ifc4x3_rc1::IfcDuctSegmentType::IfcDuctSegmentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Value v10_PredefinedType) : IfcFlowSegmentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDuctSegmentTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcDuctSilencer std::optional< ::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value > Ifc4x3_rc1::IfcDuctSilencer::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcDuctSilencer::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcDuctSilencer::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[361]); } const IfcParse::entity& Ifc4x3_rc1::IfcDuctSilencer::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[361]); } // Ifc4x3_rc1::IfcDuctSilencer::IfcDuctSilencer(const std::weak_ptr& e) : IfcFlowTreatmentDevice(e) { } // Ifc4x3_rc1::IfcDuctSilencer::IfcDuctSilencer(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value > v9_PredefinedType) : IfcFlowTreatmentDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcDuctSilencerType ::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value Ifc4x3_rc1::IfcDuctSilencerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcDuctSilencerType::setPredefinedType(const ::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcDuctSilencerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[362]); } const IfcParse::entity& Ifc4x3_rc1::IfcDuctSilencerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[362]); } // Ifc4x3_rc1::IfcDuctSilencerType::IfcDuctSilencerType(const std::weak_ptr& e) : IfcFlowTreatmentDeviceType(e) { } // Ifc4x3_rc1::IfcDuctSilencerType::IfcDuctSilencerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Value v10_PredefinedType) : IfcFlowTreatmentDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcDuctSilencerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcEarthworksCut std::optional< ::Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Value > Ifc4x3_rc1::IfcEarthworksCut::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcEarthworksCutTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcEarthworksCut::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcEarthworksCut::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[366]); } const IfcParse::entity& Ifc4x3_rc1::IfcEarthworksCut::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[366]); } // Ifc4x3_rc1::IfcEarthworksCut::IfcEarthworksCut(const std::weak_ptr& e) : IfcFeatureElementSubtraction(e) { } // Ifc4x3_rc1::IfcEarthworksCut::IfcEarthworksCut(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Value > v9_PredefinedType) : IfcFeatureElementSubtraction(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcEarthworksCutTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcEarthworksElement // const IfcParse::entity& Ifc4x3_rc1::IfcEarthworksElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[368]); } const IfcParse::entity& Ifc4x3_rc1::IfcEarthworksElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[368]); } // Ifc4x3_rc1::IfcEarthworksElement::IfcEarthworksElement(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcEarthworksElement::IfcEarthworksElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcEarthworksFill std::optional< ::Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Value > Ifc4x3_rc1::IfcEarthworksFill::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcEarthworksFillTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcEarthworksFill::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcEarthworksFill::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[369]); } const IfcParse::entity& Ifc4x3_rc1::IfcEarthworksFill::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[369]); } // Ifc4x3_rc1::IfcEarthworksFill::IfcEarthworksFill(const std::weak_ptr& e) : IfcEarthworksElement(e) { } // Ifc4x3_rc1::IfcEarthworksFill::IfcEarthworksFill(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Value > v9_PredefinedType) : IfcEarthworksElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcEarthworksFillTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcEdge ::Ifc4x3_rc1::IfcVertex Ifc4x3_rc1::IfcEdge::EdgeStart() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcVertex>(); } void Ifc4x3_rc1::IfcEdge::setEdgeStart(const ::Ifc4x3_rc1::IfcVertex& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcVertex Ifc4x3_rc1::IfcEdge::EdgeEnd() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcVertex>(); } void Ifc4x3_rc1::IfcEdge::setEdgeEnd(const ::Ifc4x3_rc1::IfcVertex& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcEdge::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[371]); } const IfcParse::entity& Ifc4x3_rc1::IfcEdge::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[371]); } // Ifc4x3_rc1::IfcEdge::IfcEdge(const std::weak_ptr& e) : IfcTopologicalRepresentationItem(e) { } // Ifc4x3_rc1::IfcEdge::IfcEdge(::Ifc4x3_rc1::IfcVertex v1_EdgeStart, ::Ifc4x3_rc1::IfcVertex v2_EdgeEnd) : IfcTopologicalRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_EdgeStart));set_attribute_value(1, (v2_EdgeEnd));; populate_derived(); } // Function implementations for IfcEdgeCurve ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcEdgeCurve::EdgeGeometry() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcEdgeCurve::setEdgeGeometry(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } bool Ifc4x3_rc1::IfcEdgeCurve::SameSense() const { bool v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcEdgeCurve::setSameSense(const bool& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcEdgeCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[372]); } const IfcParse::entity& Ifc4x3_rc1::IfcEdgeCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[372]); } // Ifc4x3_rc1::IfcEdgeCurve::IfcEdgeCurve(const std::weak_ptr& e) : IfcEdge(e) { } // Ifc4x3_rc1::IfcEdgeCurve::IfcEdgeCurve(::Ifc4x3_rc1::IfcVertex v1_EdgeStart, ::Ifc4x3_rc1::IfcVertex v2_EdgeEnd, ::Ifc4x3_rc1::IfcCurve v3_EdgeGeometry, bool v4_SameSense) : IfcEdge(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_EdgeStart));set_attribute_value(1, (v2_EdgeEnd));set_attribute_value(2, (v3_EdgeGeometry));set_attribute_value(3, (v4_SameSense));; populate_derived(); } // Function implementations for IfcEdgeLoop std::vector< ::Ifc4x3_rc1::IfcOrientedEdge > Ifc4x3_rc1::IfcEdgeLoop::EdgeList() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcOrientedEdge>(es); } void Ifc4x3_rc1::IfcEdgeLoop::setEdgeList(const std::vector< ::Ifc4x3_rc1::IfcOrientedEdge >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcEdgeLoop::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[373]); } const IfcParse::entity& Ifc4x3_rc1::IfcEdgeLoop::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[373]); } // Ifc4x3_rc1::IfcEdgeLoop::IfcEdgeLoop(const std::weak_ptr& e) : IfcLoop(e) { } // Ifc4x3_rc1::IfcEdgeLoop::IfcEdgeLoop(std::vector< ::Ifc4x3_rc1::IfcOrientedEdge > v1_EdgeList) : IfcLoop(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_EdgeList)->generalize());; populate_derived(); } // Function implementations for IfcElectricAppliance std::optional< ::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value > Ifc4x3_rc1::IfcElectricAppliance::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcElectricAppliance::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricAppliance::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[374]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricAppliance::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[374]); } // Ifc4x3_rc1::IfcElectricAppliance::IfcElectricAppliance(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcElectricAppliance::IfcElectricAppliance(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcElectricApplianceType ::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value Ifc4x3_rc1::IfcElectricApplianceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElectricApplianceType::setPredefinedType(const ::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricApplianceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[375]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricApplianceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[375]); } // Ifc4x3_rc1::IfcElectricApplianceType::IfcElectricApplianceType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcElectricApplianceType::IfcElectricApplianceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricApplianceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcElectricDistributionBoard std::optional< ::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value > Ifc4x3_rc1::IfcElectricDistributionBoard::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcElectricDistributionBoard::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricDistributionBoard::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[381]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricDistributionBoard::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[381]); } // Ifc4x3_rc1::IfcElectricDistributionBoard::IfcElectricDistributionBoard(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcElectricDistributionBoard::IfcElectricDistributionBoard(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcElectricDistributionBoardType ::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value Ifc4x3_rc1::IfcElectricDistributionBoardType::PredefinedType() const { return ::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElectricDistributionBoardType::setPredefinedType(const ::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricDistributionBoardType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[382]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricDistributionBoardType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[382]); } // Ifc4x3_rc1::IfcElectricDistributionBoardType::IfcElectricDistributionBoardType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcElectricDistributionBoardType::IfcElectricDistributionBoardType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcElectricFlowStorageDevice std::optional< ::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value > Ifc4x3_rc1::IfcElectricFlowStorageDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcElectricFlowStorageDevice::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricFlowStorageDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[384]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricFlowStorageDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[384]); } // Ifc4x3_rc1::IfcElectricFlowStorageDevice::IfcElectricFlowStorageDevice(const std::weak_ptr& e) : IfcFlowStorageDevice(e) { } // Ifc4x3_rc1::IfcElectricFlowStorageDevice::IfcElectricFlowStorageDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value > v9_PredefinedType) : IfcFlowStorageDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcElectricFlowStorageDeviceType ::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value Ifc4x3_rc1::IfcElectricFlowStorageDeviceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElectricFlowStorageDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricFlowStorageDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[385]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricFlowStorageDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[385]); } // Ifc4x3_rc1::IfcElectricFlowStorageDeviceType::IfcElectricFlowStorageDeviceType(const std::weak_ptr& e) : IfcFlowStorageDeviceType(e) { } // Ifc4x3_rc1::IfcElectricFlowStorageDeviceType::IfcElectricFlowStorageDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Value v10_PredefinedType) : IfcFlowStorageDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcElectricFlowTreatmentDevice std::optional< ::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value > Ifc4x3_rc1::IfcElectricFlowTreatmentDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcElectricFlowTreatmentDevice::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricFlowTreatmentDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[387]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricFlowTreatmentDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[387]); } // Ifc4x3_rc1::IfcElectricFlowTreatmentDevice::IfcElectricFlowTreatmentDevice(const std::weak_ptr& e) : IfcFlowTreatmentDevice(e) { } // Ifc4x3_rc1::IfcElectricFlowTreatmentDevice::IfcElectricFlowTreatmentDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value > v9_PredefinedType) : IfcFlowTreatmentDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcElectricFlowTreatmentDeviceType ::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[388]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[388]); } // Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceType::IfcElectricFlowTreatmentDeviceType(const std::weak_ptr& e) : IfcFlowTreatmentDeviceType(e) { } // Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceType::IfcElectricFlowTreatmentDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Value v10_PredefinedType) : IfcFlowTreatmentDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcElectricGenerator std::optional< ::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value > Ifc4x3_rc1::IfcElectricGenerator::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcElectricGenerator::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricGenerator::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[390]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricGenerator::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[390]); } // Ifc4x3_rc1::IfcElectricGenerator::IfcElectricGenerator(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcElectricGenerator::IfcElectricGenerator(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcElectricGeneratorType ::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value Ifc4x3_rc1::IfcElectricGeneratorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElectricGeneratorType::setPredefinedType(const ::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricGeneratorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[391]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricGeneratorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[391]); } // Ifc4x3_rc1::IfcElectricGeneratorType::IfcElectricGeneratorType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcElectricGeneratorType::IfcElectricGeneratorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcElectricMotor std::optional< ::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value > Ifc4x3_rc1::IfcElectricMotor::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElectricMotorTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcElectricMotor::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricMotor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[393]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricMotor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[393]); } // Ifc4x3_rc1::IfcElectricMotor::IfcElectricMotor(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcElectricMotor::IfcElectricMotor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcElectricMotorType ::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value Ifc4x3_rc1::IfcElectricMotorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcElectricMotorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElectricMotorType::setPredefinedType(const ::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricMotorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[394]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricMotorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[394]); } // Ifc4x3_rc1::IfcElectricMotorType::IfcElectricMotorType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcElectricMotorType::IfcElectricMotorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricMotorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcElectricTimeControl std::optional< ::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value > Ifc4x3_rc1::IfcElectricTimeControl::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcElectricTimeControl::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricTimeControl::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[397]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricTimeControl::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[397]); } // Ifc4x3_rc1::IfcElectricTimeControl::IfcElectricTimeControl(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcElectricTimeControl::IfcElectricTimeControl(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcElectricTimeControlType ::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value Ifc4x3_rc1::IfcElectricTimeControlType::PredefinedType() const { return ::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElectricTimeControlType::setPredefinedType(const ::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcElectricTimeControlType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[398]); } const IfcParse::entity& Ifc4x3_rc1::IfcElectricTimeControlType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[398]); } // Ifc4x3_rc1::IfcElectricTimeControlType::IfcElectricTimeControlType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcElectricTimeControlType::IfcElectricTimeControlType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcElement std::optional< std::string > Ifc4x3_rc1::IfcElement::Tag() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcElement::setTag(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::vector<::Ifc4x3_rc1::IfcRelFillsElement> Ifc4x3_rc1::IfcElement::FillsVoids() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[947], 5)); } std::vector<::Ifc4x3_rc1::IfcRelConnectsElements> Ifc4x3_rc1::IfcElement::ConnectedTo() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[929], 5)); } std::vector<::Ifc4x3_rc1::IfcRelInterferesElements> Ifc4x3_rc1::IfcElement::IsInterferedByElements() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[949], 5)); } std::vector<::Ifc4x3_rc1::IfcRelInterferesElements> Ifc4x3_rc1::IfcElement::InterferesElements() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[949], 4)); } std::vector<::Ifc4x3_rc1::IfcRelProjectsElement> Ifc4x3_rc1::IfcElement::HasProjections() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[952], 4)); } std::vector<::Ifc4x3_rc1::IfcRelVoidsElement> Ifc4x3_rc1::IfcElement::HasOpenings() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[959], 4)); } std::vector<::Ifc4x3_rc1::IfcRelConnectsWithRealizingElements> Ifc4x3_rc1::IfcElement::IsConnectionRealization() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[936], 7)); } std::vector<::Ifc4x3_rc1::IfcRelSpaceBoundary> Ifc4x3_rc1::IfcElement::ProvidesBoundaries() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[956], 5)); } std::vector<::Ifc4x3_rc1::IfcRelConnectsElements> Ifc4x3_rc1::IfcElement::ConnectedFrom() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[929], 6)); } std::vector<::Ifc4x3_rc1::IfcRelContainedInSpatialStructure> Ifc4x3_rc1::IfcElement::ContainedInStructure() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[937], 4)); } std::vector<::Ifc4x3_rc1::IfcRelCoversBldgElements> Ifc4x3_rc1::IfcElement::HasCoverings() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[938], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[401]); } const IfcParse::entity& Ifc4x3_rc1::IfcElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[401]); } // Ifc4x3_rc1::IfcElement::IfcElement(const std::weak_ptr& e) : IfcProduct(e) { } // Ifc4x3_rc1::IfcElement::IfcElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcProduct(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcElementAssembly std::optional< ::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value > Ifc4x3_rc1::IfcElementAssembly::AssemblyPlace() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcAssemblyPlaceEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcElementAssembly::setAssemblyPlace(const std::optional< ::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } std::optional< ::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value > Ifc4x3_rc1::IfcElementAssembly::PredefinedType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElementAssembly::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElementAssembly::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[403]); } const IfcParse::entity& Ifc4x3_rc1::IfcElementAssembly::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[403]); } // Ifc4x3_rc1::IfcElementAssembly::IfcElementAssembly(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcElementAssembly::IfcElementAssembly(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value > v9_AssemblyPlace, std::optional< ::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value > v10_PredefinedType) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_AssemblyPlace) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Class(),(size_t)*v9_AssemblyPlace))); } if (v10_PredefinedType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Class(),(size_t)*v10_PredefinedType))); }; populate_derived(); } // Function implementations for IfcElementAssemblyType ::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value Ifc4x3_rc1::IfcElementAssemblyType::PredefinedType() const { return ::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcElementAssemblyType::setPredefinedType(const ::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcElementAssemblyType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[404]); } const IfcParse::entity& Ifc4x3_rc1::IfcElementAssemblyType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[404]); } // Ifc4x3_rc1::IfcElementAssemblyType::IfcElementAssemblyType(const std::weak_ptr& e) : IfcElementType(e) { } // Ifc4x3_rc1::IfcElementAssemblyType::IfcElementAssemblyType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Value v10_PredefinedType) : IfcElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcElementAssemblyTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcElementComponent // const IfcParse::entity& Ifc4x3_rc1::IfcElementComponent::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[406]); } const IfcParse::entity& Ifc4x3_rc1::IfcElementComponent::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[406]); } // Ifc4x3_rc1::IfcElementComponent::IfcElementComponent(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcElementComponent::IfcElementComponent(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcElementComponentType // const IfcParse::entity& Ifc4x3_rc1::IfcElementComponentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[407]); } const IfcParse::entity& Ifc4x3_rc1::IfcElementComponentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[407]); } // Ifc4x3_rc1::IfcElementComponentType::IfcElementComponentType(const std::weak_ptr& e) : IfcElementType(e) { } // Ifc4x3_rc1::IfcElementComponentType::IfcElementComponentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcElementQuantity std::optional< std::string > Ifc4x3_rc1::IfcElementQuantity::MethodOfMeasurement() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcElementQuantity::setMethodOfMeasurement(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity > Ifc4x3_rc1::IfcElementQuantity::Quantities() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcPhysicalQuantity>(es); } void Ifc4x3_rc1::IfcElementQuantity::setQuantities(const std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcElementQuantity::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[409]); } const IfcParse::entity& Ifc4x3_rc1::IfcElementQuantity::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[409]); } // Ifc4x3_rc1::IfcElementQuantity::IfcElementQuantity(const std::weak_ptr& e) : IfcQuantitySet(e) { } // Ifc4x3_rc1::IfcElementQuantity::IfcElementQuantity(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_MethodOfMeasurement, std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity > v6_Quantities) : IfcQuantitySet(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_MethodOfMeasurement) {set_attribute_value(4, (*v5_MethodOfMeasurement)); }set_attribute_value(5, (v6_Quantities)->generalize());; populate_derived(); } // Function implementations for IfcElementType std::optional< std::string > Ifc4x3_rc1::IfcElementType::ElementType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcElementType::setElementType(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[410]); } const IfcParse::entity& Ifc4x3_rc1::IfcElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[410]); } // Ifc4x3_rc1::IfcElementType::IfcElementType(const std::weak_ptr& e) : IfcTypeProduct(e) { } // Ifc4x3_rc1::IfcElementType::IfcElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcTypeProduct(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcElementarySurface ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcElementarySurface::Position() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcElementarySurface::setPosition(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcElementarySurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[402]); } const IfcParse::entity& Ifc4x3_rc1::IfcElementarySurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[402]); } // Ifc4x3_rc1::IfcElementarySurface::IfcElementarySurface(const std::weak_ptr& e) : IfcSurface(e) { } // Ifc4x3_rc1::IfcElementarySurface::IfcElementarySurface(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position) : IfcSurface(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Position));; populate_derived(); } // Function implementations for IfcEllipse double Ifc4x3_rc1::IfcEllipse::SemiAxis1() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcEllipse::setSemiAxis1(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcEllipse::SemiAxis2() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcEllipse::setSemiAxis2(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcEllipse::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[411]); } const IfcParse::entity& Ifc4x3_rc1::IfcEllipse::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[411]); } // Ifc4x3_rc1::IfcEllipse::IfcEllipse(const std::weak_ptr& e) : IfcConic(e) { } // Ifc4x3_rc1::IfcEllipse::IfcEllipse(::Ifc4x3_rc1::IfcAxis2Placement v1_Position, double v2_SemiAxis1, double v3_SemiAxis2) : IfcConic(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_SemiAxis1));set_attribute_value(2, (v3_SemiAxis2));; populate_derived(); } // Function implementations for IfcEllipseProfileDef double Ifc4x3_rc1::IfcEllipseProfileDef::SemiAxis1() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcEllipseProfileDef::setSemiAxis1(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcEllipseProfileDef::SemiAxis2() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcEllipseProfileDef::setSemiAxis2(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcEllipseProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[412]); } const IfcParse::entity& Ifc4x3_rc1::IfcEllipseProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[412]); } // Ifc4x3_rc1::IfcEllipseProfileDef::IfcEllipseProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcEllipseProfileDef::IfcEllipseProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_SemiAxis1, double v5_SemiAxis2) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_SemiAxis1));set_attribute_value(4, (v5_SemiAxis2));; populate_derived(); } // Function implementations for IfcEnergyConversionDevice // const IfcParse::entity& Ifc4x3_rc1::IfcEnergyConversionDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[413]); } const IfcParse::entity& Ifc4x3_rc1::IfcEnergyConversionDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[413]); } // Ifc4x3_rc1::IfcEnergyConversionDevice::IfcEnergyConversionDevice(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcEnergyConversionDevice::IfcEnergyConversionDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcEnergyConversionDeviceType // const IfcParse::entity& Ifc4x3_rc1::IfcEnergyConversionDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[414]); } const IfcParse::entity& Ifc4x3_rc1::IfcEnergyConversionDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[414]); } // Ifc4x3_rc1::IfcEnergyConversionDeviceType::IfcEnergyConversionDeviceType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcEnergyConversionDeviceType::IfcEnergyConversionDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcEngine std::optional< ::Ifc4x3_rc1::IfcEngineTypeEnum::Value > Ifc4x3_rc1::IfcEngine::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcEngineTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcEngine::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcEngineTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcEngineTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcEngine::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[416]); } const IfcParse::entity& Ifc4x3_rc1::IfcEngine::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[416]); } // Ifc4x3_rc1::IfcEngine::IfcEngine(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcEngine::IfcEngine(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcEngineTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcEngineTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcEngineType ::Ifc4x3_rc1::IfcEngineTypeEnum::Value Ifc4x3_rc1::IfcEngineType::PredefinedType() const { return ::Ifc4x3_rc1::IfcEngineTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcEngineType::setPredefinedType(const ::Ifc4x3_rc1::IfcEngineTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcEngineTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcEngineType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[417]); } const IfcParse::entity& Ifc4x3_rc1::IfcEngineType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[417]); } // Ifc4x3_rc1::IfcEngineType::IfcEngineType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcEngineType::IfcEngineType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcEngineTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcEngineTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcEvaporativeCooler std::optional< ::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value > Ifc4x3_rc1::IfcEvaporativeCooler::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcEvaporativeCooler::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcEvaporativeCooler::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[419]); } const IfcParse::entity& Ifc4x3_rc1::IfcEvaporativeCooler::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[419]); } // Ifc4x3_rc1::IfcEvaporativeCooler::IfcEvaporativeCooler(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcEvaporativeCooler::IfcEvaporativeCooler(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcEvaporativeCoolerType ::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value Ifc4x3_rc1::IfcEvaporativeCoolerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcEvaporativeCoolerType::setPredefinedType(const ::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcEvaporativeCoolerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[420]); } const IfcParse::entity& Ifc4x3_rc1::IfcEvaporativeCoolerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[420]); } // Ifc4x3_rc1::IfcEvaporativeCoolerType::IfcEvaporativeCoolerType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcEvaporativeCoolerType::IfcEvaporativeCoolerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcEvaporator std::optional< ::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value > Ifc4x3_rc1::IfcEvaporator::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcEvaporatorTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcEvaporator::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcEvaporator::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[422]); } const IfcParse::entity& Ifc4x3_rc1::IfcEvaporator::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[422]); } // Ifc4x3_rc1::IfcEvaporator::IfcEvaporator(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcEvaporator::IfcEvaporator(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcEvaporatorType ::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value Ifc4x3_rc1::IfcEvaporatorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcEvaporatorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcEvaporatorType::setPredefinedType(const ::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcEvaporatorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[423]); } const IfcParse::entity& Ifc4x3_rc1::IfcEvaporatorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[423]); } // Ifc4x3_rc1::IfcEvaporatorType::IfcEvaporatorType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcEvaporatorType::IfcEvaporatorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcEvaporatorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcEvent std::optional< ::Ifc4x3_rc1::IfcEventTypeEnum::Value > Ifc4x3_rc1::IfcEvent::PredefinedType() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcEventTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcEvent::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcEventTypeEnum::Value >& v) { if (v) {set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcEventTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(7);} } std::optional< ::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value > Ifc4x3_rc1::IfcEvent::EventTriggerType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcEventTriggerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcEvent::setEventTriggerType(const std::optional< ::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } std::optional< std::string > Ifc4x3_rc1::IfcEvent::UserDefinedEventTriggerType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::string v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcEvent::setUserDefinedEventTriggerType(const std::optional< std::string >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } ::Ifc4x3_rc1::IfcEventTime Ifc4x3_rc1::IfcEvent::EventOccurenceTime() const { if(get_attribute_value(10).isNull()) { return ::Ifc4x3_rc1::IfcEventTime{}; } return ((express::Base)(get_attribute_value(10))).as<::Ifc4x3_rc1::IfcEventTime>(); } void Ifc4x3_rc1::IfcEvent::setEventOccurenceTime(const ::Ifc4x3_rc1::IfcEventTime& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } // const IfcParse::entity& Ifc4x3_rc1::IfcEvent::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[425]); } const IfcParse::entity& Ifc4x3_rc1::IfcEvent::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[425]); } // Ifc4x3_rc1::IfcEvent::IfcEvent(const std::weak_ptr& e) : IfcProcess(e) { } // Ifc4x3_rc1::IfcEvent::IfcEvent(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, std::optional< ::Ifc4x3_rc1::IfcEventTypeEnum::Value > v8_PredefinedType, std::optional< ::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value > v9_EventTriggerType, std::optional< std::string > v10_UserDefinedEventTriggerType, ::Ifc4x3_rc1::IfcEventTime v11_EventOccurenceTime) : IfcProcess(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_PredefinedType) {set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcEventTypeEnum::Class(),(size_t)*v8_PredefinedType))); } if (v9_EventTriggerType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Class(),(size_t)*v9_EventTriggerType))); } if (v10_UserDefinedEventTriggerType) {set_attribute_value(9, (*v10_UserDefinedEventTriggerType)); } if (v11_EventOccurenceTime) {set_attribute_value(10, (*v11_EventOccurenceTime)); }; populate_derived(); } // Function implementations for IfcEventTime std::optional< std::string > Ifc4x3_rc1::IfcEventTime::ActualDate() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcEventTime::setActualDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcEventTime::EarlyDate() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcEventTime::setEarlyDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcEventTime::LateDate() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcEventTime::setLateDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcEventTime::ScheduleDate() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcEventTime::setScheduleDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcEventTime::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[426]); } const IfcParse::entity& Ifc4x3_rc1::IfcEventTime::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[426]); } // Ifc4x3_rc1::IfcEventTime::IfcEventTime(const std::weak_ptr& e) : IfcSchedulingTime(e) { } // Ifc4x3_rc1::IfcEventTime::IfcEventTime(std::optional< std::string > v1_Name, std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value > v2_DataOrigin, std::optional< std::string > v3_UserDefinedDataOrigin, std::optional< std::string > v4_ActualDate, std::optional< std::string > v5_EarlyDate, std::optional< std::string > v6_LateDate, std::optional< std::string > v7_ScheduleDate) : IfcSchedulingTime(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DataOrigin) {set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)*v2_DataOrigin))); } if (v3_UserDefinedDataOrigin) {set_attribute_value(2, (*v3_UserDefinedDataOrigin)); } if (v4_ActualDate) {set_attribute_value(3, (*v4_ActualDate)); } if (v5_EarlyDate) {set_attribute_value(4, (*v5_EarlyDate)); } if (v6_LateDate) {set_attribute_value(5, (*v6_LateDate)); } if (v7_ScheduleDate) {set_attribute_value(6, (*v7_ScheduleDate)); }; populate_derived(); } // Function implementations for IfcEventType ::Ifc4x3_rc1::IfcEventTypeEnum::Value Ifc4x3_rc1::IfcEventType::PredefinedType() const { return ::Ifc4x3_rc1::IfcEventTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcEventType::setPredefinedType(const ::Ifc4x3_rc1::IfcEventTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcEventTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } ::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value Ifc4x3_rc1::IfcEventType::EventTriggerType() const { return ::Ifc4x3_rc1::IfcEventTriggerTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcEventType::setEventTriggerType(const ::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value& v) { set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(10); } std::optional< std::string > Ifc4x3_rc1::IfcEventType::UserDefinedEventTriggerType() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } std::string v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcEventType::setUserDefinedEventTriggerType(const std::optional< std::string >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } // const IfcParse::entity& Ifc4x3_rc1::IfcEventType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[428]); } const IfcParse::entity& Ifc4x3_rc1::IfcEventType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[428]); } // Ifc4x3_rc1::IfcEventType::IfcEventType(const std::weak_ptr& e) : IfcTypeProcess(e) { } // Ifc4x3_rc1::IfcEventType::IfcEventType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ProcessType, ::Ifc4x3_rc1::IfcEventTypeEnum::Value v10_PredefinedType, ::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Value v11_EventTriggerType, std::optional< std::string > v12_UserDefinedEventTriggerType) : IfcTypeProcess(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ProcessType) {set_attribute_value(8, (*v9_ProcessType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcEventTypeEnum::Class(),(size_t)v10_PredefinedType)));set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcEventTriggerTypeEnum::Class(),(size_t)v11_EventTriggerType))); if (v12_UserDefinedEventTriggerType) {set_attribute_value(11, (*v12_UserDefinedEventTriggerType)); }; populate_derived(); } // Function implementations for IfcExtendedProperties std::optional< std::string > Ifc4x3_rc1::IfcExtendedProperties::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcExtendedProperties::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcExtendedProperties::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcExtendedProperties::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector< ::Ifc4x3_rc1::IfcProperty > Ifc4x3_rc1::IfcExtendedProperties::Properties() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcProperty>(es); } void Ifc4x3_rc1::IfcExtendedProperties::setProperties(const std::vector< ::Ifc4x3_rc1::IfcProperty >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcExtendedProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[430]); } const IfcParse::entity& Ifc4x3_rc1::IfcExtendedProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[430]); } // Ifc4x3_rc1::IfcExtendedProperties::IfcExtendedProperties(const std::weak_ptr& e) : IfcPropertyAbstraction(e) { } // Ifc4x3_rc1::IfcExtendedProperties::IfcExtendedProperties(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcProperty > v3_Properties) : IfcPropertyAbstraction(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_Properties)->generalize());; populate_derived(); } // Function implementations for IfcExternalInformation // const IfcParse::entity& Ifc4x3_rc1::IfcExternalInformation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[431]); } const IfcParse::entity& Ifc4x3_rc1::IfcExternalInformation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[431]); } // Ifc4x3_rc1::IfcExternalInformation::IfcExternalInformation(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcExternalInformation::IfcExternalInformation() : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcExternalReference std::optional< std::string > Ifc4x3_rc1::IfcExternalReference::Location() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcExternalReference::setLocation(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcExternalReference::Identification() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcExternalReference::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcExternalReference::Name() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcExternalReference::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcExternalReference::ExternalReferenceForResources() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcExternalReference::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[435]); } const IfcParse::entity& Ifc4x3_rc1::IfcExternalReference::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[435]); } // Ifc4x3_rc1::IfcExternalReference::IfcExternalReference(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcExternalReference::IfcExternalReference(std::optional< std::string > v1_Location, std::optional< std::string > v2_Identification, std::optional< std::string > v3_Name) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Location) {set_attribute_value(0, (*v1_Location)); } if (v2_Identification) {set_attribute_value(1, (*v2_Identification)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); }; populate_derived(); } // Function implementations for IfcExternalReferenceRelationship ::Ifc4x3_rc1::IfcExternalReference Ifc4x3_rc1::IfcExternalReferenceRelationship::RelatingReference() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcExternalReference>(); } void Ifc4x3_rc1::IfcExternalReferenceRelationship::setRelatingReference(const ::Ifc4x3_rc1::IfcExternalReference& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect > Ifc4x3_rc1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcResourceObjectSelect>(es); } void Ifc4x3_rc1::IfcExternalReferenceRelationship::setRelatedResourceObjects(const std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcExternalReferenceRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[436]); } const IfcParse::entity& Ifc4x3_rc1::IfcExternalReferenceRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[436]); } // Ifc4x3_rc1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcExternalReference v3_RelatingReference, std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect > v4_RelatedResourceObjects) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_RelatingReference));set_attribute_value(3, (v4_RelatedResourceObjects)->generalize());; populate_derived(); } // Function implementations for IfcExternalSpatialElement std::optional< ::Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Value > Ifc4x3_rc1::IfcExternalSpatialElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcExternalSpatialElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } std::vector<::Ifc4x3_rc1::IfcRelSpaceBoundary> Ifc4x3_rc1::IfcExternalSpatialElement::BoundedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[956], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcExternalSpatialElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[437]); } const IfcParse::entity& Ifc4x3_rc1::IfcExternalSpatialElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[437]); } // Ifc4x3_rc1::IfcExternalSpatialElement::IfcExternalSpatialElement(const std::weak_ptr& e) : IfcExternalSpatialStructureElement(e) { } // Ifc4x3_rc1::IfcExternalSpatialElement::IfcExternalSpatialElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Value > v9_PredefinedType) : IfcExternalSpatialStructureElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcExternalSpatialStructureElement // const IfcParse::entity& Ifc4x3_rc1::IfcExternalSpatialStructureElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[439]); } const IfcParse::entity& Ifc4x3_rc1::IfcExternalSpatialStructureElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[439]); } // Ifc4x3_rc1::IfcExternalSpatialStructureElement::IfcExternalSpatialStructureElement(const std::weak_ptr& e) : IfcSpatialElement(e) { } // Ifc4x3_rc1::IfcExternalSpatialStructureElement::IfcExternalSpatialStructureElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName) : IfcSpatialElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); }; populate_derived(); } // Function implementations for IfcExternallyDefinedHatchStyle // const IfcParse::entity& Ifc4x3_rc1::IfcExternallyDefinedHatchStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[432]); } const IfcParse::entity& Ifc4x3_rc1::IfcExternallyDefinedHatchStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[432]); } // Ifc4x3_rc1::IfcExternallyDefinedHatchStyle::IfcExternallyDefinedHatchStyle(const std::weak_ptr& e) : IfcExternalReference(e) { } // Ifc4x3_rc1::IfcExternallyDefinedHatchStyle::IfcExternallyDefinedHatchStyle(std::optional< std::string > v1_Location, std::optional< std::string > v2_Identification, std::optional< std::string > v3_Name) : IfcExternalReference(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Location) {set_attribute_value(0, (*v1_Location)); } if (v2_Identification) {set_attribute_value(1, (*v2_Identification)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); }; populate_derived(); } // Function implementations for IfcExternallyDefinedSurfaceStyle // const IfcParse::entity& Ifc4x3_rc1::IfcExternallyDefinedSurfaceStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[433]); } const IfcParse::entity& Ifc4x3_rc1::IfcExternallyDefinedSurfaceStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[433]); } // Ifc4x3_rc1::IfcExternallyDefinedSurfaceStyle::IfcExternallyDefinedSurfaceStyle(const std::weak_ptr& e) : IfcExternalReference(e) { } // Ifc4x3_rc1::IfcExternallyDefinedSurfaceStyle::IfcExternallyDefinedSurfaceStyle(std::optional< std::string > v1_Location, std::optional< std::string > v2_Identification, std::optional< std::string > v3_Name) : IfcExternalReference(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Location) {set_attribute_value(0, (*v1_Location)); } if (v2_Identification) {set_attribute_value(1, (*v2_Identification)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); }; populate_derived(); } // Function implementations for IfcExternallyDefinedTextFont // const IfcParse::entity& Ifc4x3_rc1::IfcExternallyDefinedTextFont::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[434]); } const IfcParse::entity& Ifc4x3_rc1::IfcExternallyDefinedTextFont::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[434]); } // Ifc4x3_rc1::IfcExternallyDefinedTextFont::IfcExternallyDefinedTextFont(const std::weak_ptr& e) : IfcExternalReference(e) { } // Ifc4x3_rc1::IfcExternallyDefinedTextFont::IfcExternallyDefinedTextFont(std::optional< std::string > v1_Location, std::optional< std::string > v2_Identification, std::optional< std::string > v3_Name) : IfcExternalReference(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Location) {set_attribute_value(0, (*v1_Location)); } if (v2_Identification) {set_attribute_value(1, (*v2_Identification)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); }; populate_derived(); } // Function implementations for IfcExtrudedAreaSolid ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcExtrudedAreaSolid::ExtrudedDirection() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcExtrudedAreaSolid::setExtrudedDirection(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcExtrudedAreaSolid::Depth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcExtrudedAreaSolid::setDepth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcExtrudedAreaSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[440]); } const IfcParse::entity& Ifc4x3_rc1::IfcExtrudedAreaSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[440]); } // Ifc4x3_rc1::IfcExtrudedAreaSolid::IfcExtrudedAreaSolid(const std::weak_ptr& e) : IfcSweptAreaSolid(e) { } // Ifc4x3_rc1::IfcExtrudedAreaSolid::IfcExtrudedAreaSolid(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcDirection v3_ExtrudedDirection, double v4_Depth) : IfcSweptAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_ExtrudedDirection));set_attribute_value(3, (v4_Depth));; populate_derived(); } // Function implementations for IfcExtrudedAreaSolidTapered ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcExtrudedAreaSolidTapered::EndSweptArea() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcExtrudedAreaSolidTapered::setEndSweptArea(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcExtrudedAreaSolidTapered::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[441]); } const IfcParse::entity& Ifc4x3_rc1::IfcExtrudedAreaSolidTapered::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[441]); } // Ifc4x3_rc1::IfcExtrudedAreaSolidTapered::IfcExtrudedAreaSolidTapered(const std::weak_ptr& e) : IfcExtrudedAreaSolid(e) { } // Ifc4x3_rc1::IfcExtrudedAreaSolidTapered::IfcExtrudedAreaSolidTapered(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcDirection v3_ExtrudedDirection, double v4_Depth, ::Ifc4x3_rc1::IfcProfileDef v5_EndSweptArea) : IfcExtrudedAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_ExtrudedDirection));set_attribute_value(3, (v4_Depth));set_attribute_value(4, (v5_EndSweptArea));; populate_derived(); } // Function implementations for IfcFace std::vector< ::Ifc4x3_rc1::IfcFaceBound > Ifc4x3_rc1::IfcFace::Bounds() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcFaceBound>(es); } void Ifc4x3_rc1::IfcFace::setBounds(const std::vector< ::Ifc4x3_rc1::IfcFaceBound >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } std::vector<::Ifc4x3_rc1::IfcTextureMap> Ifc4x3_rc1::IfcFace::HasTextureMaps() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1199], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcFace::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[442]); } const IfcParse::entity& Ifc4x3_rc1::IfcFace::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[442]); } // Ifc4x3_rc1::IfcFace::IfcFace(const std::weak_ptr& e) : IfcTopologicalRepresentationItem(e) { } // Ifc4x3_rc1::IfcFace::IfcFace(std::vector< ::Ifc4x3_rc1::IfcFaceBound > v1_Bounds) : IfcTopologicalRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Bounds)->generalize());; populate_derived(); } // Function implementations for IfcFaceBasedSurfaceModel std::vector< ::Ifc4x3_rc1::IfcConnectedFaceSet > Ifc4x3_rc1::IfcFaceBasedSurfaceModel::FbsmFaces() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcConnectedFaceSet>(es); } void Ifc4x3_rc1::IfcFaceBasedSurfaceModel::setFbsmFaces(const std::vector< ::Ifc4x3_rc1::IfcConnectedFaceSet >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcFaceBasedSurfaceModel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[443]); } const IfcParse::entity& Ifc4x3_rc1::IfcFaceBasedSurfaceModel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[443]); } // Ifc4x3_rc1::IfcFaceBasedSurfaceModel::IfcFaceBasedSurfaceModel(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcFaceBasedSurfaceModel::IfcFaceBasedSurfaceModel(std::vector< ::Ifc4x3_rc1::IfcConnectedFaceSet > v1_FbsmFaces) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_FbsmFaces)->generalize());; populate_derived(); } // Function implementations for IfcFaceBound ::Ifc4x3_rc1::IfcLoop Ifc4x3_rc1::IfcFaceBound::Bound() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcLoop>(); } void Ifc4x3_rc1::IfcFaceBound::setBound(const ::Ifc4x3_rc1::IfcLoop& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } bool Ifc4x3_rc1::IfcFaceBound::Orientation() const { bool v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcFaceBound::setOrientation(const bool& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcFaceBound::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[444]); } const IfcParse::entity& Ifc4x3_rc1::IfcFaceBound::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[444]); } // Ifc4x3_rc1::IfcFaceBound::IfcFaceBound(const std::weak_ptr& e) : IfcTopologicalRepresentationItem(e) { } // Ifc4x3_rc1::IfcFaceBound::IfcFaceBound(::Ifc4x3_rc1::IfcLoop v1_Bound, bool v2_Orientation) : IfcTopologicalRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Bound));set_attribute_value(1, (v2_Orientation));; populate_derived(); } // Function implementations for IfcFaceOuterBound // const IfcParse::entity& Ifc4x3_rc1::IfcFaceOuterBound::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[445]); } const IfcParse::entity& Ifc4x3_rc1::IfcFaceOuterBound::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[445]); } // Ifc4x3_rc1::IfcFaceOuterBound::IfcFaceOuterBound(const std::weak_ptr& e) : IfcFaceBound(e) { } // Ifc4x3_rc1::IfcFaceOuterBound::IfcFaceOuterBound(::Ifc4x3_rc1::IfcLoop v1_Bound, bool v2_Orientation) : IfcFaceBound(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Bound));set_attribute_value(1, (v2_Orientation));; populate_derived(); } // Function implementations for IfcFaceSurface ::Ifc4x3_rc1::IfcSurface Ifc4x3_rc1::IfcFaceSurface::FaceSurface() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcSurface>(); } void Ifc4x3_rc1::IfcFaceSurface::setFaceSurface(const ::Ifc4x3_rc1::IfcSurface& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } bool Ifc4x3_rc1::IfcFaceSurface::SameSense() const { bool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcFaceSurface::setSameSense(const bool& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcFaceSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[446]); } const IfcParse::entity& Ifc4x3_rc1::IfcFaceSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[446]); } // Ifc4x3_rc1::IfcFaceSurface::IfcFaceSurface(const std::weak_ptr& e) : IfcFace(e) { } // Ifc4x3_rc1::IfcFaceSurface::IfcFaceSurface(std::vector< ::Ifc4x3_rc1::IfcFaceBound > v1_Bounds, ::Ifc4x3_rc1::IfcSurface v2_FaceSurface, bool v3_SameSense) : IfcFace(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Bounds)->generalize());set_attribute_value(1, (v2_FaceSurface));set_attribute_value(2, (v3_SameSense));; populate_derived(); } // Function implementations for IfcFacetedBrep // const IfcParse::entity& Ifc4x3_rc1::IfcFacetedBrep::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[447]); } const IfcParse::entity& Ifc4x3_rc1::IfcFacetedBrep::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[447]); } // Ifc4x3_rc1::IfcFacetedBrep::IfcFacetedBrep(const std::weak_ptr& e) : IfcManifoldSolidBrep(e) { } // Ifc4x3_rc1::IfcFacetedBrep::IfcFacetedBrep(::Ifc4x3_rc1::IfcClosedShell v1_Outer) : IfcManifoldSolidBrep(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Outer));; populate_derived(); } // Function implementations for IfcFacetedBrepWithVoids std::vector< ::Ifc4x3_rc1::IfcClosedShell > Ifc4x3_rc1::IfcFacetedBrepWithVoids::Voids() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcClosedShell>(es); } void Ifc4x3_rc1::IfcFacetedBrepWithVoids::setVoids(const std::vector< ::Ifc4x3_rc1::IfcClosedShell >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcFacetedBrepWithVoids::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[448]); } const IfcParse::entity& Ifc4x3_rc1::IfcFacetedBrepWithVoids::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[448]); } // Ifc4x3_rc1::IfcFacetedBrepWithVoids::IfcFacetedBrepWithVoids(const std::weak_ptr& e) : IfcFacetedBrep(e) { } // Ifc4x3_rc1::IfcFacetedBrepWithVoids::IfcFacetedBrepWithVoids(::Ifc4x3_rc1::IfcClosedShell v1_Outer, std::vector< ::Ifc4x3_rc1::IfcClosedShell > v2_Voids) : IfcFacetedBrep(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Outer));set_attribute_value(1, (v2_Voids)->generalize());; populate_derived(); } // Function implementations for IfcFacility // const IfcParse::entity& Ifc4x3_rc1::IfcFacility::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[449]); } const IfcParse::entity& Ifc4x3_rc1::IfcFacility::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[449]); } // Ifc4x3_rc1::IfcFacility::IfcFacility(const std::weak_ptr& e) : IfcSpatialStructureElement(e) { } // Ifc4x3_rc1::IfcFacility::IfcFacility(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType) : IfcSpatialStructureElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); }; populate_derived(); } // Function implementations for IfcFacilityPart ::Ifc4x3_rc1::IfcFacilityPartTypeSelect Ifc4x3_rc1::IfcFacilityPart::PredefinedType() const { return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcFacilityPartTypeSelect>(); } void Ifc4x3_rc1::IfcFacilityPart::setPredefinedType(const ::Ifc4x3_rc1::IfcFacilityPartTypeSelect& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } ::Ifc4x3_rc1::IfcFacilityUsageEnum::Value Ifc4x3_rc1::IfcFacilityPart::UsageType() const { return ::Ifc4x3_rc1::IfcFacilityUsageEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcFacilityPart::setUsageType(const ::Ifc4x3_rc1::IfcFacilityUsageEnum::Value& v) { set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcFacilityUsageEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(10); } // const IfcParse::entity& Ifc4x3_rc1::IfcFacilityPart::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[450]); } const IfcParse::entity& Ifc4x3_rc1::IfcFacilityPart::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[450]); } // Ifc4x3_rc1::IfcFacilityPart::IfcFacilityPart(const std::weak_ptr& e) : IfcSpatialStructureElement(e) { } // Ifc4x3_rc1::IfcFacilityPart::IfcFacilityPart(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType, ::Ifc4x3_rc1::IfcFacilityPartTypeSelect v10_PredefinedType, ::Ifc4x3_rc1::IfcFacilityUsageEnum::Value v11_UsageType) : IfcSpatialStructureElement(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); }set_attribute_value(9, (v10_PredefinedType));set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcFacilityUsageEnum::Class(),(size_t)v11_UsageType)));; populate_derived(); } // Function implementations for IfcFailureConnectionCondition std::optional< double > Ifc4x3_rc1::IfcFailureConnectionCondition::TensionFailureX() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcFailureConnectionCondition::setTensionFailureX(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcFailureConnectionCondition::TensionFailureY() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcFailureConnectionCondition::setTensionFailureY(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcFailureConnectionCondition::TensionFailureZ() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcFailureConnectionCondition::setTensionFailureZ(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcFailureConnectionCondition::CompressionFailureX() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcFailureConnectionCondition::setCompressionFailureX(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< double > Ifc4x3_rc1::IfcFailureConnectionCondition::CompressionFailureY() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcFailureConnectionCondition::setCompressionFailureY(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< double > Ifc4x3_rc1::IfcFailureConnectionCondition::CompressionFailureZ() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcFailureConnectionCondition::setCompressionFailureZ(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFailureConnectionCondition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[454]); } const IfcParse::entity& Ifc4x3_rc1::IfcFailureConnectionCondition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[454]); } // Ifc4x3_rc1::IfcFailureConnectionCondition::IfcFailureConnectionCondition(const std::weak_ptr& e) : IfcStructuralConnectionCondition(e) { } // Ifc4x3_rc1::IfcFailureConnectionCondition::IfcFailureConnectionCondition(std::optional< std::string > v1_Name, std::optional< double > v2_TensionFailureX, std::optional< double > v3_TensionFailureY, std::optional< double > v4_TensionFailureZ, std::optional< double > v5_CompressionFailureX, std::optional< double > v6_CompressionFailureY, std::optional< double > v7_CompressionFailureZ) : IfcStructuralConnectionCondition(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_TensionFailureX) {set_attribute_value(1, (*v2_TensionFailureX)); } if (v3_TensionFailureY) {set_attribute_value(2, (*v3_TensionFailureY)); } if (v4_TensionFailureZ) {set_attribute_value(3, (*v4_TensionFailureZ)); } if (v5_CompressionFailureX) {set_attribute_value(4, (*v5_CompressionFailureX)); } if (v6_CompressionFailureY) {set_attribute_value(5, (*v6_CompressionFailureY)); } if (v7_CompressionFailureZ) {set_attribute_value(6, (*v7_CompressionFailureZ)); }; populate_derived(); } // Function implementations for IfcFan std::optional< ::Ifc4x3_rc1::IfcFanTypeEnum::Value > Ifc4x3_rc1::IfcFan::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFanTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcFan::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFanTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcFanTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFan::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[455]); } const IfcParse::entity& Ifc4x3_rc1::IfcFan::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[455]); } // Ifc4x3_rc1::IfcFan::IfcFan(const std::weak_ptr& e) : IfcFlowMovingDevice(e) { } // Ifc4x3_rc1::IfcFan::IfcFan(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcFanTypeEnum::Value > v9_PredefinedType) : IfcFlowMovingDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcFanTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcFanType ::Ifc4x3_rc1::IfcFanTypeEnum::Value Ifc4x3_rc1::IfcFanType::PredefinedType() const { return ::Ifc4x3_rc1::IfcFanTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcFanType::setPredefinedType(const ::Ifc4x3_rc1::IfcFanTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcFanTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcFanType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[456]); } const IfcParse::entity& Ifc4x3_rc1::IfcFanType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[456]); } // Ifc4x3_rc1::IfcFanType::IfcFanType(const std::weak_ptr& e) : IfcFlowMovingDeviceType(e) { } // Ifc4x3_rc1::IfcFanType::IfcFanType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcFanTypeEnum::Value v10_PredefinedType) : IfcFlowMovingDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcFanTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcFastener std::optional< ::Ifc4x3_rc1::IfcFastenerTypeEnum::Value > Ifc4x3_rc1::IfcFastener::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFastenerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcFastener::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFastenerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcFastenerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFastener::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[458]); } const IfcParse::entity& Ifc4x3_rc1::IfcFastener::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[458]); } // Ifc4x3_rc1::IfcFastener::IfcFastener(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcFastener::IfcFastener(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcFastenerTypeEnum::Value > v9_PredefinedType) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcFastenerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcFastenerType ::Ifc4x3_rc1::IfcFastenerTypeEnum::Value Ifc4x3_rc1::IfcFastenerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcFastenerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcFastenerType::setPredefinedType(const ::Ifc4x3_rc1::IfcFastenerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcFastenerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcFastenerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[459]); } const IfcParse::entity& Ifc4x3_rc1::IfcFastenerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[459]); } // Ifc4x3_rc1::IfcFastenerType::IfcFastenerType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcFastenerType::IfcFastenerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcFastenerTypeEnum::Value v10_PredefinedType) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcFastenerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcFeatureElement // const IfcParse::entity& Ifc4x3_rc1::IfcFeatureElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[461]); } const IfcParse::entity& Ifc4x3_rc1::IfcFeatureElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[461]); } // Ifc4x3_rc1::IfcFeatureElement::IfcFeatureElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcFeatureElement::IfcFeatureElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFeatureElementAddition std::vector<::Ifc4x3_rc1::IfcRelProjectsElement> Ifc4x3_rc1::IfcFeatureElementAddition::ProjectsElements() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[952], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcFeatureElementAddition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[462]); } const IfcParse::entity& Ifc4x3_rc1::IfcFeatureElementAddition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[462]); } // Ifc4x3_rc1::IfcFeatureElementAddition::IfcFeatureElementAddition(const std::weak_ptr& e) : IfcFeatureElement(e) { } // Ifc4x3_rc1::IfcFeatureElementAddition::IfcFeatureElementAddition(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcFeatureElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFeatureElementSubtraction std::vector<::Ifc4x3_rc1::IfcRelVoidsElement> Ifc4x3_rc1::IfcFeatureElementSubtraction::VoidsElements() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[959], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcFeatureElementSubtraction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[463]); } const IfcParse::entity& Ifc4x3_rc1::IfcFeatureElementSubtraction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[463]); } // Ifc4x3_rc1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(const std::weak_ptr& e) : IfcFeatureElement(e) { } // Ifc4x3_rc1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcFeatureElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFillAreaStyle std::vector< ::Ifc4x3_rc1::IfcFillStyleSelect > Ifc4x3_rc1::IfcFillAreaStyle::FillStyles() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcFillStyleSelect>(es); } void Ifc4x3_rc1::IfcFillAreaStyle::setFillStyles(const std::vector< ::Ifc4x3_rc1::IfcFillStyleSelect >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } std::optional< bool > Ifc4x3_rc1::IfcFillAreaStyle::ModelorDraughting() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } bool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcFillAreaStyle::setModelorDraughting(const std::optional< bool >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFillAreaStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[464]); } const IfcParse::entity& Ifc4x3_rc1::IfcFillAreaStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[464]); } // Ifc4x3_rc1::IfcFillAreaStyle::IfcFillAreaStyle(const std::weak_ptr& e) : IfcPresentationStyle(e) { } // Ifc4x3_rc1::IfcFillAreaStyle::IfcFillAreaStyle(std::optional< std::string > v1_Name, std::vector< ::Ifc4x3_rc1::IfcFillStyleSelect > v2_FillStyles, std::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_FillStyles)->generalize()); if (v3_ModelorDraughting) {set_attribute_value(2, (*v3_ModelorDraughting)); }; populate_derived(); } // Function implementations for IfcFillAreaStyleHatching ::Ifc4x3_rc1::IfcCurveStyle Ifc4x3_rc1::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurveStyle>(); } void Ifc4x3_rc1::IfcFillAreaStyleHatching::setHatchLineAppearance(const ::Ifc4x3_rc1::IfcCurveStyle& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcHatchLineDistanceSelect Ifc4x3_rc1::IfcFillAreaStyleHatching::StartOfNextHatchLine() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcHatchLineDistanceSelect>(); } void Ifc4x3_rc1::IfcFillAreaStyleHatching::setStartOfNextHatchLine(const ::Ifc4x3_rc1::IfcHatchLineDistanceSelect& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcCartesianPoint Ifc4x3_rc1::IfcFillAreaStyleHatching::PointOfReferenceHatchLine() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcCartesianPoint{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcCartesianPoint>(); } void Ifc4x3_rc1::IfcFillAreaStyleHatching::setPointOfReferenceHatchLine(const ::Ifc4x3_rc1::IfcCartesianPoint& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcCartesianPoint Ifc4x3_rc1::IfcFillAreaStyleHatching::PatternStart() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcCartesianPoint{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcCartesianPoint>(); } void Ifc4x3_rc1::IfcFillAreaStyleHatching::setPatternStart(const ::Ifc4x3_rc1::IfcCartesianPoint& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcFillAreaStyleHatching::HatchLineAngle() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcFillAreaStyleHatching::setHatchLineAngle(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcFillAreaStyleHatching::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[465]); } const IfcParse::entity& Ifc4x3_rc1::IfcFillAreaStyleHatching::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[465]); } // Ifc4x3_rc1::IfcFillAreaStyleHatching::IfcFillAreaStyleHatching(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcFillAreaStyleHatching::IfcFillAreaStyleHatching(::Ifc4x3_rc1::IfcCurveStyle v1_HatchLineAppearance, ::Ifc4x3_rc1::IfcHatchLineDistanceSelect v2_StartOfNextHatchLine, ::Ifc4x3_rc1::IfcCartesianPoint v3_PointOfReferenceHatchLine, ::Ifc4x3_rc1::IfcCartesianPoint v4_PatternStart, double v5_HatchLineAngle) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_HatchLineAppearance));set_attribute_value(1, (v2_StartOfNextHatchLine)); if (v3_PointOfReferenceHatchLine) {set_attribute_value(2, (*v3_PointOfReferenceHatchLine)); } if (v4_PatternStart) {set_attribute_value(3, (*v4_PatternStart)); }set_attribute_value(4, (v5_HatchLineAngle));; populate_derived(); } // Function implementations for IfcFillAreaStyleTiles std::vector< ::Ifc4x3_rc1::IfcVector > Ifc4x3_rc1::IfcFillAreaStyleTiles::TilingPattern() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcVector>(es); } void Ifc4x3_rc1::IfcFillAreaStyleTiles::setTilingPattern(const std::vector< ::Ifc4x3_rc1::IfcVector >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcStyledItem > Ifc4x3_rc1::IfcFillAreaStyleTiles::Tiles() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcStyledItem>(es); } void Ifc4x3_rc1::IfcFillAreaStyleTiles::setTiles(const std::vector< ::Ifc4x3_rc1::IfcStyledItem >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcFillAreaStyleTiles::TilingScale() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcFillAreaStyleTiles::setTilingScale(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcFillAreaStyleTiles::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[466]); } const IfcParse::entity& Ifc4x3_rc1::IfcFillAreaStyleTiles::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[466]); } // Ifc4x3_rc1::IfcFillAreaStyleTiles::IfcFillAreaStyleTiles(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcFillAreaStyleTiles::IfcFillAreaStyleTiles(std::vector< ::Ifc4x3_rc1::IfcVector > v1_TilingPattern, std::vector< ::Ifc4x3_rc1::IfcStyledItem > v2_Tiles, double v3_TilingScale) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_TilingPattern)->generalize());set_attribute_value(1, (v2_Tiles)->generalize());set_attribute_value(2, (v3_TilingScale));; populate_derived(); } // Function implementations for IfcFilter std::optional< ::Ifc4x3_rc1::IfcFilterTypeEnum::Value > Ifc4x3_rc1::IfcFilter::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFilterTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcFilter::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFilterTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcFilterTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFilter::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[468]); } const IfcParse::entity& Ifc4x3_rc1::IfcFilter::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[468]); } // Ifc4x3_rc1::IfcFilter::IfcFilter(const std::weak_ptr& e) : IfcFlowTreatmentDevice(e) { } // Ifc4x3_rc1::IfcFilter::IfcFilter(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcFilterTypeEnum::Value > v9_PredefinedType) : IfcFlowTreatmentDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcFilterTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcFilterType ::Ifc4x3_rc1::IfcFilterTypeEnum::Value Ifc4x3_rc1::IfcFilterType::PredefinedType() const { return ::Ifc4x3_rc1::IfcFilterTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcFilterType::setPredefinedType(const ::Ifc4x3_rc1::IfcFilterTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcFilterTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcFilterType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[469]); } const IfcParse::entity& Ifc4x3_rc1::IfcFilterType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[469]); } // Ifc4x3_rc1::IfcFilterType::IfcFilterType(const std::weak_ptr& e) : IfcFlowTreatmentDeviceType(e) { } // Ifc4x3_rc1::IfcFilterType::IfcFilterType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcFilterTypeEnum::Value v10_PredefinedType) : IfcFlowTreatmentDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcFilterTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcFireSuppressionTerminal std::optional< ::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value > Ifc4x3_rc1::IfcFireSuppressionTerminal::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcFireSuppressionTerminal::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFireSuppressionTerminal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[471]); } const IfcParse::entity& Ifc4x3_rc1::IfcFireSuppressionTerminal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[471]); } // Ifc4x3_rc1::IfcFireSuppressionTerminal::IfcFireSuppressionTerminal(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcFireSuppressionTerminal::IfcFireSuppressionTerminal(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcFireSuppressionTerminalType ::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value Ifc4x3_rc1::IfcFireSuppressionTerminalType::PredefinedType() const { return ::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcFireSuppressionTerminalType::setPredefinedType(const ::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcFireSuppressionTerminalType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[472]); } const IfcParse::entity& Ifc4x3_rc1::IfcFireSuppressionTerminalType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[472]); } // Ifc4x3_rc1::IfcFireSuppressionTerminalType::IfcFireSuppressionTerminalType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcFireSuppressionTerminalType::IfcFireSuppressionTerminalType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcFixedReferenceSweptAreaSolid ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcFixedReferenceSweptAreaSolid::FixedReference() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcFixedReferenceSweptAreaSolid::setFixedReference(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcFixedReferenceSweptAreaSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[474]); } const IfcParse::entity& Ifc4x3_rc1::IfcFixedReferenceSweptAreaSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[474]); } // Ifc4x3_rc1::IfcFixedReferenceSweptAreaSolid::IfcFixedReferenceSweptAreaSolid(const std::weak_ptr& e) : IfcDirectrixCurveSweptAreaSolid(e) { } // Ifc4x3_rc1::IfcFixedReferenceSweptAreaSolid::IfcFixedReferenceSweptAreaSolid(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcCurve v3_Directrix, std::optional< double > v4_StartParam, std::optional< double > v5_EndParam, ::Ifc4x3_rc1::IfcDirection v6_FixedReference) : IfcDirectrixCurveSweptAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_Directrix)); if (v4_StartParam) {set_attribute_value(3, (*v4_StartParam)); } if (v5_EndParam) {set_attribute_value(4, (*v5_EndParam)); }set_attribute_value(5, (v6_FixedReference));; populate_derived(); } // Function implementations for IfcFlowController // const IfcParse::entity& Ifc4x3_rc1::IfcFlowController::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[475]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowController::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[475]); } // Ifc4x3_rc1::IfcFlowController::IfcFlowController(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcFlowController::IfcFlowController(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFlowControllerType // const IfcParse::entity& Ifc4x3_rc1::IfcFlowControllerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[476]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowControllerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[476]); } // Ifc4x3_rc1::IfcFlowControllerType::IfcFlowControllerType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcFlowControllerType::IfcFlowControllerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcFlowFitting // const IfcParse::entity& Ifc4x3_rc1::IfcFlowFitting::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[478]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowFitting::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[478]); } // Ifc4x3_rc1::IfcFlowFitting::IfcFlowFitting(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcFlowFitting::IfcFlowFitting(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFlowFittingType // const IfcParse::entity& Ifc4x3_rc1::IfcFlowFittingType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[479]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowFittingType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[479]); } // Ifc4x3_rc1::IfcFlowFittingType::IfcFlowFittingType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcFlowFittingType::IfcFlowFittingType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcFlowInstrument std::optional< ::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value > Ifc4x3_rc1::IfcFlowInstrument::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcFlowInstrument::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFlowInstrument::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[480]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowInstrument::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[480]); } // Ifc4x3_rc1::IfcFlowInstrument::IfcFlowInstrument(const std::weak_ptr& e) : IfcDistributionControlElement(e) { } // Ifc4x3_rc1::IfcFlowInstrument::IfcFlowInstrument(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value > v9_PredefinedType) : IfcDistributionControlElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcFlowInstrumentType ::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value Ifc4x3_rc1::IfcFlowInstrumentType::PredefinedType() const { return ::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcFlowInstrumentType::setPredefinedType(const ::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcFlowInstrumentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[481]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowInstrumentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[481]); } // Ifc4x3_rc1::IfcFlowInstrumentType::IfcFlowInstrumentType(const std::weak_ptr& e) : IfcDistributionControlElementType(e) { } // Ifc4x3_rc1::IfcFlowInstrumentType::IfcFlowInstrumentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Value v10_PredefinedType) : IfcDistributionControlElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcFlowMeter std::optional< ::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value > Ifc4x3_rc1::IfcFlowMeter::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFlowMeterTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcFlowMeter::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFlowMeter::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[483]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowMeter::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[483]); } // Ifc4x3_rc1::IfcFlowMeter::IfcFlowMeter(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcFlowMeter::IfcFlowMeter(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcFlowMeterType ::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value Ifc4x3_rc1::IfcFlowMeterType::PredefinedType() const { return ::Ifc4x3_rc1::IfcFlowMeterTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcFlowMeterType::setPredefinedType(const ::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcFlowMeterType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[484]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowMeterType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[484]); } // Ifc4x3_rc1::IfcFlowMeterType::IfcFlowMeterType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcFlowMeterType::IfcFlowMeterType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcFlowMeterTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcFlowMovingDevice // const IfcParse::entity& Ifc4x3_rc1::IfcFlowMovingDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[486]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowMovingDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[486]); } // Ifc4x3_rc1::IfcFlowMovingDevice::IfcFlowMovingDevice(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcFlowMovingDevice::IfcFlowMovingDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFlowMovingDeviceType // const IfcParse::entity& Ifc4x3_rc1::IfcFlowMovingDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[487]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowMovingDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[487]); } // Ifc4x3_rc1::IfcFlowMovingDeviceType::IfcFlowMovingDeviceType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcFlowMovingDeviceType::IfcFlowMovingDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcFlowSegment // const IfcParse::entity& Ifc4x3_rc1::IfcFlowSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[488]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[488]); } // Ifc4x3_rc1::IfcFlowSegment::IfcFlowSegment(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcFlowSegment::IfcFlowSegment(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFlowSegmentType // const IfcParse::entity& Ifc4x3_rc1::IfcFlowSegmentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[489]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowSegmentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[489]); } // Ifc4x3_rc1::IfcFlowSegmentType::IfcFlowSegmentType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcFlowSegmentType::IfcFlowSegmentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcFlowStorageDevice // const IfcParse::entity& Ifc4x3_rc1::IfcFlowStorageDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[490]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowStorageDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[490]); } // Ifc4x3_rc1::IfcFlowStorageDevice::IfcFlowStorageDevice(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcFlowStorageDevice::IfcFlowStorageDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFlowStorageDeviceType // const IfcParse::entity& Ifc4x3_rc1::IfcFlowStorageDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[491]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowStorageDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[491]); } // Ifc4x3_rc1::IfcFlowStorageDeviceType::IfcFlowStorageDeviceType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcFlowStorageDeviceType::IfcFlowStorageDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcFlowTerminal // const IfcParse::entity& Ifc4x3_rc1::IfcFlowTerminal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[492]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowTerminal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[492]); } // Ifc4x3_rc1::IfcFlowTerminal::IfcFlowTerminal(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcFlowTerminal::IfcFlowTerminal(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFlowTerminalType // const IfcParse::entity& Ifc4x3_rc1::IfcFlowTerminalType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[493]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowTerminalType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[493]); } // Ifc4x3_rc1::IfcFlowTerminalType::IfcFlowTerminalType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcFlowTerminalType::IfcFlowTerminalType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcFlowTreatmentDevice // const IfcParse::entity& Ifc4x3_rc1::IfcFlowTreatmentDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[494]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowTreatmentDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[494]); } // Ifc4x3_rc1::IfcFlowTreatmentDevice::IfcFlowTreatmentDevice(const std::weak_ptr& e) : IfcDistributionFlowElement(e) { } // Ifc4x3_rc1::IfcFlowTreatmentDevice::IfcFlowTreatmentDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcDistributionFlowElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFlowTreatmentDeviceType // const IfcParse::entity& Ifc4x3_rc1::IfcFlowTreatmentDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[495]); } const IfcParse::entity& Ifc4x3_rc1::IfcFlowTreatmentDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[495]); } // Ifc4x3_rc1::IfcFlowTreatmentDeviceType::IfcFlowTreatmentDeviceType(const std::weak_ptr& e) : IfcDistributionFlowElementType(e) { } // Ifc4x3_rc1::IfcFlowTreatmentDeviceType::IfcFlowTreatmentDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcDistributionFlowElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcFooting std::optional< ::Ifc4x3_rc1::IfcFootingTypeEnum::Value > Ifc4x3_rc1::IfcFooting::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFootingTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcFooting::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFootingTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcFootingTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFooting::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[499]); } const IfcParse::entity& Ifc4x3_rc1::IfcFooting::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[499]); } // Ifc4x3_rc1::IfcFooting::IfcFooting(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcFooting::IfcFooting(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcFootingTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcFootingTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcFootingType ::Ifc4x3_rc1::IfcFootingTypeEnum::Value Ifc4x3_rc1::IfcFootingType::PredefinedType() const { return ::Ifc4x3_rc1::IfcFootingTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcFootingType::setPredefinedType(const ::Ifc4x3_rc1::IfcFootingTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcFootingTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcFootingType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[500]); } const IfcParse::entity& Ifc4x3_rc1::IfcFootingType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[500]); } // Ifc4x3_rc1::IfcFootingType::IfcFootingType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcFootingType::IfcFootingType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcFootingTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcFootingTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcFurnishingElement // const IfcParse::entity& Ifc4x3_rc1::IfcFurnishingElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[504]); } const IfcParse::entity& Ifc4x3_rc1::IfcFurnishingElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[504]); } // Ifc4x3_rc1::IfcFurnishingElement::IfcFurnishingElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcFurnishingElement::IfcFurnishingElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcFurnishingElementType // const IfcParse::entity& Ifc4x3_rc1::IfcFurnishingElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[505]); } const IfcParse::entity& Ifc4x3_rc1::IfcFurnishingElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[505]); } // Ifc4x3_rc1::IfcFurnishingElementType::IfcFurnishingElementType(const std::weak_ptr& e) : IfcElementType(e) { } // Ifc4x3_rc1::IfcFurnishingElementType::IfcFurnishingElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcFurniture std::optional< ::Ifc4x3_rc1::IfcFurnitureTypeEnum::Value > Ifc4x3_rc1::IfcFurniture::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFurnitureTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcFurniture::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFurnitureTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcFurnitureTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFurniture::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[506]); } const IfcParse::entity& Ifc4x3_rc1::IfcFurniture::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[506]); } // Ifc4x3_rc1::IfcFurniture::IfcFurniture(const std::weak_ptr& e) : IfcFurnishingElement(e) { } // Ifc4x3_rc1::IfcFurniture::IfcFurniture(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcFurnitureTypeEnum::Value > v9_PredefinedType) : IfcFurnishingElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcFurnitureTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcFurnitureType ::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value Ifc4x3_rc1::IfcFurnitureType::AssemblyPlace() const { return ::Ifc4x3_rc1::IfcAssemblyPlaceEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcFurnitureType::setAssemblyPlace(const ::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< ::Ifc4x3_rc1::IfcFurnitureTypeEnum::Value > Ifc4x3_rc1::IfcFurnitureType::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcFurnitureTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcFurnitureType::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcFurnitureTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcFurnitureTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcFurnitureType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[507]); } const IfcParse::entity& Ifc4x3_rc1::IfcFurnitureType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[507]); } // Ifc4x3_rc1::IfcFurnitureType::IfcFurnitureType(const std::weak_ptr& e) : IfcFurnishingElementType(e) { } // Ifc4x3_rc1::IfcFurnitureType::IfcFurnitureType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Value v10_AssemblyPlace, std::optional< ::Ifc4x3_rc1::IfcFurnitureTypeEnum::Value > v11_PredefinedType) : IfcFurnishingElementType(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcAssemblyPlaceEnum::Class(),(size_t)v10_AssemblyPlace))); if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcFurnitureTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcGeographicElement std::optional< ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value > Ifc4x3_rc1::IfcGeographicElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcGeographicElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcGeographicElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[509]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeographicElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[509]); } // Ifc4x3_rc1::IfcGeographicElement::IfcGeographicElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcGeographicElement::IfcGeographicElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value > v9_PredefinedType) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcGeographicElementType ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value Ifc4x3_rc1::IfcGeographicElementType::PredefinedType() const { return ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcGeographicElementType::setPredefinedType(const ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcGeographicElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[510]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeographicElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[510]); } // Ifc4x3_rc1::IfcGeographicElementType::IfcGeographicElementType(const std::weak_ptr& e) : IfcElementType(e) { } // Ifc4x3_rc1::IfcGeographicElementType::IfcGeographicElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value v10_PredefinedType) : IfcElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcGeometricCurveSet // const IfcParse::entity& Ifc4x3_rc1::IfcGeometricCurveSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[512]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeometricCurveSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[512]); } // Ifc4x3_rc1::IfcGeometricCurveSet::IfcGeometricCurveSet(const std::weak_ptr& e) : IfcGeometricSet(e) { } // Ifc4x3_rc1::IfcGeometricCurveSet::IfcGeometricCurveSet(std::vector< ::Ifc4x3_rc1::IfcGeometricSetSelect > v1_Elements) : IfcGeometricSet(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Elements)->generalize());; populate_derived(); } // Function implementations for IfcGeometricRepresentationContext int Ifc4x3_rc1::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcGeometricRepresentationContext::setCoordinateSpaceDimension(const int& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::optional< double > Ifc4x3_rc1::IfcGeometricRepresentationContext::Precision() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcGeometricRepresentationContext::setPrecision(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } ::Ifc4x3_rc1::IfcAxis2Placement Ifc4x3_rc1::IfcGeometricRepresentationContext::WorldCoordinateSystem() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcAxis2Placement>(); } void Ifc4x3_rc1::IfcGeometricRepresentationContext::setWorldCoordinateSystem(const ::Ifc4x3_rc1::IfcAxis2Placement& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcGeometricRepresentationContext::TrueNorth() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcDirection{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcGeometricRepresentationContext::setTrueNorth(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } std::vector<::Ifc4x3_rc1::IfcGeometricRepresentationSubContext> Ifc4x3_rc1::IfcGeometricRepresentationContext::HasSubContexts() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[516], 6)); } std::vector<::Ifc4x3_rc1::IfcCoordinateOperation> Ifc4x3_rc1::IfcGeometricRepresentationContext::HasCoordinateOperation() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[249], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcGeometricRepresentationContext::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[514]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeometricRepresentationContext::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[514]); } // Ifc4x3_rc1::IfcGeometricRepresentationContext::IfcGeometricRepresentationContext(const std::weak_ptr& e) : IfcRepresentationContext(e) { } // Ifc4x3_rc1::IfcGeometricRepresentationContext::IfcGeometricRepresentationContext(std::optional< std::string > v1_ContextIdentifier, std::optional< std::string > v2_ContextType, int v3_CoordinateSpaceDimension, std::optional< double > v4_Precision, ::Ifc4x3_rc1::IfcAxis2Placement v5_WorldCoordinateSystem, ::Ifc4x3_rc1::IfcDirection v6_TrueNorth) : IfcRepresentationContext(const std::weak_ptr&(in_memory_attribute_storage(6))) { if (v1_ContextIdentifier) {set_attribute_value(0, (*v1_ContextIdentifier)); } if (v2_ContextType) {set_attribute_value(1, (*v2_ContextType)); }set_attribute_value(2, (v3_CoordinateSpaceDimension)); if (v4_Precision) {set_attribute_value(3, (*v4_Precision)); }set_attribute_value(4, (v5_WorldCoordinateSystem)); if (v6_TrueNorth) {set_attribute_value(5, (*v6_TrueNorth)); }; populate_derived(); } // Function implementations for IfcGeometricRepresentationItem // const IfcParse::entity& Ifc4x3_rc1::IfcGeometricRepresentationItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[515]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeometricRepresentationItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[515]); } // Ifc4x3_rc1::IfcGeometricRepresentationItem::IfcGeometricRepresentationItem(const std::weak_ptr& e) : IfcRepresentationItem(e) { } // Ifc4x3_rc1::IfcGeometricRepresentationItem::IfcGeometricRepresentationItem() : IfcRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcGeometricRepresentationSubContext ::Ifc4x3_rc1::IfcGeometricRepresentationContext Ifc4x3_rc1::IfcGeometricRepresentationSubContext::ParentContext() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcGeometricRepresentationContext>(); } void Ifc4x3_rc1::IfcGeometricRepresentationSubContext::setParentContext(const ::Ifc4x3_rc1::IfcGeometricRepresentationContext& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< double > Ifc4x3_rc1::IfcGeometricRepresentationSubContext::TargetScale() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcGeometricRepresentationSubContext::setTargetScale(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } ::Ifc4x3_rc1::IfcGeometricProjectionEnum::Value Ifc4x3_rc1::IfcGeometricRepresentationSubContext::TargetView() const { return ::Ifc4x3_rc1::IfcGeometricProjectionEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcGeometricRepresentationSubContext::setTargetView(const ::Ifc4x3_rc1::IfcGeometricProjectionEnum::Value& v) { set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcGeometricProjectionEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(8); } std::optional< std::string > Ifc4x3_rc1::IfcGeometricRepresentationSubContext::UserDefinedTargetView() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::string v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcGeometricRepresentationSubContext::setUserDefinedTargetView(const std::optional< std::string >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcGeometricRepresentationSubContext::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[516]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeometricRepresentationSubContext::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[516]); } // Ifc4x3_rc1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(const std::weak_ptr& e) : IfcGeometricRepresentationContext(e) { } // Ifc4x3_rc1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(std::optional< std::string > v1_ContextIdentifier, std::optional< std::string > v2_ContextType, ::Ifc4x3_rc1::IfcGeometricRepresentationContext v7_ParentContext, std::optional< double > v8_TargetScale, ::Ifc4x3_rc1::IfcGeometricProjectionEnum::Value v9_TargetView, std::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext(const std::weak_ptr&(in_memory_attribute_storage(10))) { if (v1_ContextIdentifier) {set_attribute_value(0, (*v1_ContextIdentifier)); } if (v2_ContextType) {set_attribute_value(1, (*v2_ContextType)); }set_attribute_value(6, (v7_ParentContext)); if (v8_TargetScale) {set_attribute_value(7, (*v8_TargetScale)); }set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGeometricProjectionEnum::Class(),(size_t)v9_TargetView))); if (v10_UserDefinedTargetView) {set_attribute_value(9, (*v10_UserDefinedTargetView)); }; populate_derived(); } // Function implementations for IfcGeometricSet std::vector< ::Ifc4x3_rc1::IfcGeometricSetSelect > Ifc4x3_rc1::IfcGeometricSet::Elements() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcGeometricSetSelect>(es); } void Ifc4x3_rc1::IfcGeometricSet::setElements(const std::vector< ::Ifc4x3_rc1::IfcGeometricSetSelect >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcGeometricSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[517]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeometricSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[517]); } // Ifc4x3_rc1::IfcGeometricSet::IfcGeometricSet(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcGeometricSet::IfcGeometricSet(std::vector< ::Ifc4x3_rc1::IfcGeometricSetSelect > v1_Elements) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Elements)->generalize());; populate_derived(); } // Function implementations for IfcGeomodel // const IfcParse::entity& Ifc4x3_rc1::IfcGeomodel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[519]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeomodel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[519]); } // Ifc4x3_rc1::IfcGeomodel::IfcGeomodel(const std::weak_ptr& e) : IfcGeotechnicalAssembly(e) { } // Ifc4x3_rc1::IfcGeomodel::IfcGeomodel(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcGeotechnicalAssembly(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcGeoslice // const IfcParse::entity& Ifc4x3_rc1::IfcGeoslice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[520]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeoslice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[520]); } // Ifc4x3_rc1::IfcGeoslice::IfcGeoslice(const std::weak_ptr& e) : IfcGeotechnicalAssembly(e) { } // Ifc4x3_rc1::IfcGeoslice::IfcGeoslice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcGeotechnicalAssembly(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcGeotechnicalAssembly // const IfcParse::entity& Ifc4x3_rc1::IfcGeotechnicalAssembly::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[521]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeotechnicalAssembly::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[521]); } // Ifc4x3_rc1::IfcGeotechnicalAssembly::IfcGeotechnicalAssembly(const std::weak_ptr& e) : IfcGeotechnicalElement(e) { } // Ifc4x3_rc1::IfcGeotechnicalAssembly::IfcGeotechnicalAssembly(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcGeotechnicalElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcGeotechnicalElement // const IfcParse::entity& Ifc4x3_rc1::IfcGeotechnicalElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[522]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeotechnicalElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[522]); } // Ifc4x3_rc1::IfcGeotechnicalElement::IfcGeotechnicalElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcGeotechnicalElement::IfcGeotechnicalElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcGeotechnicalStratum // const IfcParse::entity& Ifc4x3_rc1::IfcGeotechnicalStratum::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[523]); } const IfcParse::entity& Ifc4x3_rc1::IfcGeotechnicalStratum::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[523]); } // Ifc4x3_rc1::IfcGeotechnicalStratum::IfcGeotechnicalStratum(const std::weak_ptr& e) : IfcGeotechnicalElement(e) { } // Ifc4x3_rc1::IfcGeotechnicalStratum::IfcGeotechnicalStratum(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcGeotechnicalElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcGrid std::vector< ::Ifc4x3_rc1::IfcGridAxis > Ifc4x3_rc1::IfcGrid::UAxes() const { std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcGridAxis>(es); } void Ifc4x3_rc1::IfcGrid::setUAxes(const std::vector< ::Ifc4x3_rc1::IfcGridAxis >& v) { set_attribute_value(7, cast_vector(v));if constexpr (false)unset_attribute_value(7); } std::vector< ::Ifc4x3_rc1::IfcGridAxis > Ifc4x3_rc1::IfcGrid::VAxes() const { std::vector es = get_attribute_value(8); return cast_vector<::Ifc4x3_rc1::IfcGridAxis>(es); } void Ifc4x3_rc1::IfcGrid::setVAxes(const std::vector< ::Ifc4x3_rc1::IfcGridAxis >& v) { set_attribute_value(8, cast_vector(v));if constexpr (false)unset_attribute_value(8); } std::optional< std::vector< ::Ifc4x3_rc1::IfcGridAxis > > Ifc4x3_rc1::IfcGrid::WAxes() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(9); return cast_vector<::Ifc4x3_rc1::IfcGridAxis>(es); } void Ifc4x3_rc1::IfcGrid::setWAxes(const std::optional< std::vector< ::Ifc4x3_rc1::IfcGridAxis > >& v) { if (v) {set_attribute_value(9, cast_vector(*v));} else {unset_attribute_value(9);} } std::optional< ::Ifc4x3_rc1::IfcGridTypeEnum::Value > Ifc4x3_rc1::IfcGrid::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcGridTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcGrid::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcGridTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcGridTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcGrid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[526]); } const IfcParse::entity& Ifc4x3_rc1::IfcGrid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[526]); } // Ifc4x3_rc1::IfcGrid::IfcGrid(const std::weak_ptr& e) : IfcPositioningElement(e) { } // Ifc4x3_rc1::IfcGrid::IfcGrid(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::vector< ::Ifc4x3_rc1::IfcGridAxis > v8_UAxes, std::vector< ::Ifc4x3_rc1::IfcGridAxis > v9_VAxes, std::optional< std::vector< ::Ifc4x3_rc1::IfcGridAxis > > v10_WAxes, std::optional< ::Ifc4x3_rc1::IfcGridTypeEnum::Value > v11_PredefinedType) : IfcPositioningElement(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_UAxes)->generalize());set_attribute_value(8, (v9_VAxes)->generalize()); if (v10_WAxes) {set_attribute_value(9, (*v10_WAxes)->generalize()); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcGridTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcGridAxis std::optional< std::string > Ifc4x3_rc1::IfcGridAxis::AxisTag() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcGridAxis::setAxisTag(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcGridAxis::AxisCurve() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcGridAxis::setAxisCurve(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } bool Ifc4x3_rc1::IfcGridAxis::SameSense() const { bool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcGridAxis::setSameSense(const bool& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector<::Ifc4x3_rc1::IfcGrid> Ifc4x3_rc1::IfcGridAxis::PartOfW() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[526], 9)); } std::vector<::Ifc4x3_rc1::IfcGrid> Ifc4x3_rc1::IfcGridAxis::PartOfV() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[526], 8)); } std::vector<::Ifc4x3_rc1::IfcGrid> Ifc4x3_rc1::IfcGridAxis::PartOfU() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[526], 7)); } std::vector<::Ifc4x3_rc1::IfcVirtualGridIntersection> Ifc4x3_rc1::IfcGridAxis::HasIntersections() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1277], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcGridAxis::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[527]); } const IfcParse::entity& Ifc4x3_rc1::IfcGridAxis::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[527]); } // Ifc4x3_rc1::IfcGridAxis::IfcGridAxis(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcGridAxis::IfcGridAxis(std::optional< std::string > v1_AxisTag, ::Ifc4x3_rc1::IfcCurve v2_AxisCurve, bool v3_SameSense) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_AxisTag) {set_attribute_value(0, (*v1_AxisTag)); }set_attribute_value(1, (v2_AxisCurve));set_attribute_value(2, (v3_SameSense));; populate_derived(); } // Function implementations for IfcGridPlacement ::Ifc4x3_rc1::IfcVirtualGridIntersection Ifc4x3_rc1::IfcGridPlacement::PlacementLocation() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcVirtualGridIntersection>(); } void Ifc4x3_rc1::IfcGridPlacement::setPlacementLocation(const ::Ifc4x3_rc1::IfcVirtualGridIntersection& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcGridPlacementDirectionSelect Ifc4x3_rc1::IfcGridPlacement::PlacementRefDirection() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcGridPlacementDirectionSelect{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcGridPlacementDirectionSelect>(); } void Ifc4x3_rc1::IfcGridPlacement::setPlacementRefDirection(const ::Ifc4x3_rc1::IfcGridPlacementDirectionSelect& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcGridPlacement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[528]); } const IfcParse::entity& Ifc4x3_rc1::IfcGridPlacement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[528]); } // Ifc4x3_rc1::IfcGridPlacement::IfcGridPlacement(const std::weak_ptr& e) : IfcObjectPlacement(e) { } // Ifc4x3_rc1::IfcGridPlacement::IfcGridPlacement(::Ifc4x3_rc1::IfcObjectPlacement v1_PlacementRelTo, ::Ifc4x3_rc1::IfcVirtualGridIntersection v2_PlacementLocation, ::Ifc4x3_rc1::IfcGridPlacementDirectionSelect v3_PlacementRefDirection) : IfcObjectPlacement(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_PlacementRelTo) {set_attribute_value(0, (*v1_PlacementRelTo)); }set_attribute_value(1, (v2_PlacementLocation)); if (v3_PlacementRefDirection) {set_attribute_value(2, (*v3_PlacementRefDirection)); }; populate_derived(); } // Function implementations for IfcGroup std::vector<::Ifc4x3_rc1::IfcRelAssignsToGroup> Ifc4x3_rc1::IfcGroup::IsGroupedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[914], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcGroup::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[531]); } const IfcParse::entity& Ifc4x3_rc1::IfcGroup::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[531]); } // Ifc4x3_rc1::IfcGroup::IfcGroup(const std::weak_ptr& e) : IfcObject(e) { } // Ifc4x3_rc1::IfcGroup::IfcGroup(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType) : IfcObject(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }; populate_derived(); } // Function implementations for IfcHalfSpaceSolid ::Ifc4x3_rc1::IfcSurface Ifc4x3_rc1::IfcHalfSpaceSolid::BaseSurface() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcSurface>(); } void Ifc4x3_rc1::IfcHalfSpaceSolid::setBaseSurface(const ::Ifc4x3_rc1::IfcSurface& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } bool Ifc4x3_rc1::IfcHalfSpaceSolid::AgreementFlag() const { bool v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcHalfSpaceSolid::setAgreementFlag(const bool& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcHalfSpaceSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[532]); } const IfcParse::entity& Ifc4x3_rc1::IfcHalfSpaceSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[532]); } // Ifc4x3_rc1::IfcHalfSpaceSolid::IfcHalfSpaceSolid(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcHalfSpaceSolid::IfcHalfSpaceSolid(::Ifc4x3_rc1::IfcSurface v1_BaseSurface, bool v2_AgreementFlag) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_BaseSurface));set_attribute_value(1, (v2_AgreementFlag));; populate_derived(); } // Function implementations for IfcHeatExchanger std::optional< ::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value > Ifc4x3_rc1::IfcHeatExchanger::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcHeatExchanger::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcHeatExchanger::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[534]); } const IfcParse::entity& Ifc4x3_rc1::IfcHeatExchanger::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[534]); } // Ifc4x3_rc1::IfcHeatExchanger::IfcHeatExchanger(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcHeatExchanger::IfcHeatExchanger(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcHeatExchangerType ::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value Ifc4x3_rc1::IfcHeatExchangerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcHeatExchangerType::setPredefinedType(const ::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcHeatExchangerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[535]); } const IfcParse::entity& Ifc4x3_rc1::IfcHeatExchangerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[535]); } // Ifc4x3_rc1::IfcHeatExchangerType::IfcHeatExchangerType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcHeatExchangerType::IfcHeatExchangerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcHeatExchangerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcHumidifier std::optional< ::Ifc4x3_rc1::IfcHumidifierTypeEnum::Value > Ifc4x3_rc1::IfcHumidifier::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcHumidifierTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcHumidifier::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcHumidifierTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcHumidifierTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcHumidifier::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[539]); } const IfcParse::entity& Ifc4x3_rc1::IfcHumidifier::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[539]); } // Ifc4x3_rc1::IfcHumidifier::IfcHumidifier(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcHumidifier::IfcHumidifier(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcHumidifierTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcHumidifierTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcHumidifierType ::Ifc4x3_rc1::IfcHumidifierTypeEnum::Value Ifc4x3_rc1::IfcHumidifierType::PredefinedType() const { return ::Ifc4x3_rc1::IfcHumidifierTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcHumidifierType::setPredefinedType(const ::Ifc4x3_rc1::IfcHumidifierTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcHumidifierTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcHumidifierType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[540]); } const IfcParse::entity& Ifc4x3_rc1::IfcHumidifierType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[540]); } // Ifc4x3_rc1::IfcHumidifierType::IfcHumidifierType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcHumidifierType::IfcHumidifierType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcHumidifierTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcHumidifierTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcIShapeProfileDef double Ifc4x3_rc1::IfcIShapeProfileDef::OverallWidth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcIShapeProfileDef::setOverallWidth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcIShapeProfileDef::OverallDepth() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcIShapeProfileDef::setOverallDepth(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcIShapeProfileDef::WebThickness() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcIShapeProfileDef::setWebThickness(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcIShapeProfileDef::FlangeThickness() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcIShapeProfileDef::setFlangeThickness(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< double > Ifc4x3_rc1::IfcIShapeProfileDef::FilletRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcIShapeProfileDef::setFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcIShapeProfileDef::FlangeEdgeRadius() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcIShapeProfileDef::setFlangeEdgeRadius(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< double > Ifc4x3_rc1::IfcIShapeProfileDef::FlangeSlope() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcIShapeProfileDef::setFlangeSlope(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcIShapeProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[570]); } const IfcParse::entity& Ifc4x3_rc1::IfcIShapeProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[570]); } // Ifc4x3_rc1::IfcIShapeProfileDef::IfcIShapeProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcIShapeProfileDef::IfcIShapeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_OverallWidth, double v5_OverallDepth, double v6_WebThickness, double v7_FlangeThickness, std::optional< double > v8_FilletRadius, std::optional< double > v9_FlangeEdgeRadius, std::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_OverallWidth));set_attribute_value(4, (v5_OverallDepth));set_attribute_value(5, (v6_WebThickness));set_attribute_value(6, (v7_FlangeThickness)); if (v8_FilletRadius) {set_attribute_value(7, (*v8_FilletRadius)); } if (v9_FlangeEdgeRadius) {set_attribute_value(8, (*v9_FlangeEdgeRadius)); } if (v10_FlangeSlope) {set_attribute_value(9, (*v10_FlangeSlope)); }; populate_derived(); } // Function implementations for IfcImageTexture std::string Ifc4x3_rc1::IfcImageTexture::URLReference() const { std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcImageTexture::setURLReference(const std::string& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcImageTexture::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[544]); } const IfcParse::entity& Ifc4x3_rc1::IfcImageTexture::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[544]); } // Ifc4x3_rc1::IfcImageTexture::IfcImageTexture(const std::weak_ptr& e) : IfcSurfaceTexture(e) { } // Ifc4x3_rc1::IfcImageTexture::IfcImageTexture(bool v1_RepeatS, bool v2_RepeatT, std::optional< std::string > v3_Mode, ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D v4_TextureTransform, std::optional< std::vector< std::string > /*[1:?]*/ > v5_Parameter, std::string v6_URLReference) : IfcSurfaceTexture(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_RepeatS));set_attribute_value(1, (v2_RepeatT)); if (v3_Mode) {set_attribute_value(2, (*v3_Mode)); } if (v4_TextureTransform) {set_attribute_value(3, (*v4_TextureTransform)); } if (v5_Parameter) {set_attribute_value(4, (*v5_Parameter)); }set_attribute_value(5, (v6_URLReference));; populate_derived(); } // Function implementations for IfcImpactProtectionDevice ::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect Ifc4x3_rc1::IfcImpactProtectionDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect>(); } void Ifc4x3_rc1::IfcImpactProtectionDevice::setPredefinedType(const ::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcImpactProtectionDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[545]); } const IfcParse::entity& Ifc4x3_rc1::IfcImpactProtectionDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[545]); } // Ifc4x3_rc1::IfcImpactProtectionDevice::IfcImpactProtectionDevice(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcImpactProtectionDevice::IfcImpactProtectionDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, ::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect v9_PredefinedType) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (*v9_PredefinedType)); }; populate_derived(); } // Function implementations for IfcImpactProtectionDeviceType ::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect Ifc4x3_rc1::IfcImpactProtectionDeviceType::PredefinedType() const { return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect>(); } void Ifc4x3_rc1::IfcImpactProtectionDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcImpactProtectionDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[546]); } const IfcParse::entity& Ifc4x3_rc1::IfcImpactProtectionDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[546]); } // Ifc4x3_rc1::IfcImpactProtectionDeviceType::IfcImpactProtectionDeviceType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcImpactProtectionDeviceType::IfcImpactProtectionDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcImpactProtectionDeviceTypeSelect v10_PredefinedType) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (v10_PredefinedType));; populate_derived(); } // Function implementations for IfcInclinedReferenceSweptAreaSolid std::optional< bool > Ifc4x3_rc1::IfcInclinedReferenceSweptAreaSolid::FixedAxisVertical() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } bool v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcInclinedReferenceSweptAreaSolid::setFixedAxisVertical(const std::optional< bool >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } ::Ifc4x3_rc1::IfcAxisLateralInclination Ifc4x3_rc1::IfcInclinedReferenceSweptAreaSolid::Inclinating() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcAxisLateralInclination>(); } void Ifc4x3_rc1::IfcInclinedReferenceSweptAreaSolid::setInclinating(const ::Ifc4x3_rc1::IfcAxisLateralInclination& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcInclinedReferenceSweptAreaSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[549]); } const IfcParse::entity& Ifc4x3_rc1::IfcInclinedReferenceSweptAreaSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[549]); } // Ifc4x3_rc1::IfcInclinedReferenceSweptAreaSolid::IfcInclinedReferenceSweptAreaSolid(const std::weak_ptr& e) : IfcDirectrixDistanceSweptAreaSolid(e) { } // Ifc4x3_rc1::IfcInclinedReferenceSweptAreaSolid::IfcInclinedReferenceSweptAreaSolid(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcCurve v3_Directrix, ::Ifc4x3_rc1::IfcDistanceExpression v4_StartDistance, ::Ifc4x3_rc1::IfcDistanceExpression v5_EndDistance, std::optional< bool > v6_FixedAxisVertical, ::Ifc4x3_rc1::IfcAxisLateralInclination v7_Inclinating) : IfcDirectrixDistanceSweptAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_Directrix)); if (v4_StartDistance) {set_attribute_value(3, (*v4_StartDistance)); } if (v5_EndDistance) {set_attribute_value(4, (*v5_EndDistance)); } if (v6_FixedAxisVertical) {set_attribute_value(5, (*v6_FixedAxisVertical)); }set_attribute_value(6, (v7_Inclinating));; populate_derived(); } // Function implementations for IfcIndexedColourMap ::Ifc4x3_rc1::IfcTessellatedFaceSet Ifc4x3_rc1::IfcIndexedColourMap::MappedTo() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcTessellatedFaceSet>(); } void Ifc4x3_rc1::IfcIndexedColourMap::setMappedTo(const ::Ifc4x3_rc1::IfcTessellatedFaceSet& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< double > Ifc4x3_rc1::IfcIndexedColourMap::Opacity() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcIndexedColourMap::setOpacity(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } ::Ifc4x3_rc1::IfcColourRgbList Ifc4x3_rc1::IfcIndexedColourMap::Colours() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcColourRgbList>(); } void Ifc4x3_rc1::IfcIndexedColourMap::setColours(const ::Ifc4x3_rc1::IfcColourRgbList& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< int > /*[1:?]*/ Ifc4x3_rc1::IfcIndexedColourMap::ColourIndex() const { std::vector< int > /*[1:?]*/ v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcIndexedColourMap::setColourIndex(const std::vector< int > /*[1:?]*/& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcIndexedColourMap::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[550]); } const IfcParse::entity& Ifc4x3_rc1::IfcIndexedColourMap::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[550]); } // Ifc4x3_rc1::IfcIndexedColourMap::IfcIndexedColourMap(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x3_rc1::IfcTessellatedFaceSet v1_MappedTo, std::optional< double > v2_Opacity, ::Ifc4x3_rc1::IfcColourRgbList v3_Colours, std::vector< int > /*[1:?]*/ v4_ColourIndex) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_MappedTo)); if (v2_Opacity) {set_attribute_value(1, (*v2_Opacity)); }set_attribute_value(2, (v3_Colours));set_attribute_value(3, (v4_ColourIndex));; populate_derived(); } // Function implementations for IfcIndexedPolyCurve ::Ifc4x3_rc1::IfcCartesianPointList Ifc4x3_rc1::IfcIndexedPolyCurve::Points() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCartesianPointList>(); } void Ifc4x3_rc1::IfcIndexedPolyCurve::setPoints(const ::Ifc4x3_rc1::IfcCartesianPointList& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::vector< ::Ifc4x3_rc1::IfcSegmentIndexSelect > > Ifc4x3_rc1::IfcIndexedPolyCurve::Segments() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcSegmentIndexSelect>(es); } void Ifc4x3_rc1::IfcIndexedPolyCurve::setSegments(const std::optional< std::vector< ::Ifc4x3_rc1::IfcSegmentIndexSelect > >& v) { if (v) {set_attribute_value(1, cast_vector(*v));} else {unset_attribute_value(1);} } std::optional< bool > Ifc4x3_rc1::IfcIndexedPolyCurve::SelfIntersect() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } bool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcIndexedPolyCurve::setSelfIntersect(const std::optional< bool >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcIndexedPolyCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[551]); } const IfcParse::entity& Ifc4x3_rc1::IfcIndexedPolyCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[551]); } // Ifc4x3_rc1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(const std::weak_ptr& e) : IfcBoundedCurve(e) { } // Ifc4x3_rc1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc1::IfcCartesianPointList v1_Points, std::optional< std::vector< ::Ifc4x3_rc1::IfcSegmentIndexSelect > > v2_Segments, std::optional< bool > v3_SelfIntersect) : IfcBoundedCurve(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Points)); if (v2_Segments) {set_attribute_value(1, (*v2_Segments)->generalize()); } if (v3_SelfIntersect) {set_attribute_value(2, (*v3_SelfIntersect)); }; populate_derived(); } // Function implementations for IfcIndexedPolygonalFace std::vector< int > /*[3:?]*/ Ifc4x3_rc1::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcIndexedPolygonalFace::setCoordIndex(const std::vector< int > /*[3:?]*/& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector<::Ifc4x3_rc1::IfcPolygonalFaceSet> Ifc4x3_rc1::IfcIndexedPolygonalFace::ToFaceSet() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[783], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcIndexedPolygonalFace::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[552]); } const IfcParse::entity& Ifc4x3_rc1::IfcIndexedPolygonalFace::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[552]); } // Ifc4x3_rc1::IfcIndexedPolygonalFace::IfcIndexedPolygonalFace(const std::weak_ptr& e) : IfcTessellatedItem(e) { } // Ifc4x3_rc1::IfcIndexedPolygonalFace::IfcIndexedPolygonalFace(std::vector< int > /*[3:?]*/ v1_CoordIndex) : IfcTessellatedItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_CoordIndex));; populate_derived(); } // Function implementations for IfcIndexedPolygonalFaceWithVoids std::vector< std::vector< int > > Ifc4x3_rc1::IfcIndexedPolygonalFaceWithVoids::InnerCoordIndices() const { std::vector< std::vector< int > > v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcIndexedPolygonalFaceWithVoids::setInnerCoordIndices(const std::vector< std::vector< int > >& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcIndexedPolygonalFaceWithVoids::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[553]); } const IfcParse::entity& Ifc4x3_rc1::IfcIndexedPolygonalFaceWithVoids::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[553]); } // Ifc4x3_rc1::IfcIndexedPolygonalFaceWithVoids::IfcIndexedPolygonalFaceWithVoids(const std::weak_ptr& e) : IfcIndexedPolygonalFace(e) { } // Ifc4x3_rc1::IfcIndexedPolygonalFaceWithVoids::IfcIndexedPolygonalFaceWithVoids(std::vector< int > /*[3:?]*/ v1_CoordIndex, std::vector< std::vector< int > > v2_InnerCoordIndices) : IfcIndexedPolygonalFace(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_CoordIndex));set_attribute_value(1, (v2_InnerCoordIndices));; populate_derived(); } // Function implementations for IfcIndexedTextureMap ::Ifc4x3_rc1::IfcTessellatedFaceSet Ifc4x3_rc1::IfcIndexedTextureMap::MappedTo() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcTessellatedFaceSet>(); } void Ifc4x3_rc1::IfcIndexedTextureMap::setMappedTo(const ::Ifc4x3_rc1::IfcTessellatedFaceSet& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcTextureVertexList Ifc4x3_rc1::IfcIndexedTextureMap::TexCoords() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcTextureVertexList>(); } void Ifc4x3_rc1::IfcIndexedTextureMap::setTexCoords(const ::Ifc4x3_rc1::IfcTextureVertexList& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcIndexedTextureMap::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[554]); } const IfcParse::entity& Ifc4x3_rc1::IfcIndexedTextureMap::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[554]); } // Ifc4x3_rc1::IfcIndexedTextureMap::IfcIndexedTextureMap(const std::weak_ptr& e) : IfcTextureCoordinate(e) { } // Ifc4x3_rc1::IfcIndexedTextureMap::IfcIndexedTextureMap(std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture > v1_Maps, ::Ifc4x3_rc1::IfcTessellatedFaceSet v2_MappedTo, ::Ifc4x3_rc1::IfcTextureVertexList v3_TexCoords) : IfcTextureCoordinate(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Maps)->generalize());set_attribute_value(1, (v2_MappedTo));set_attribute_value(2, (v3_TexCoords));; populate_derived(); } // Function implementations for IfcIndexedTriangleTextureMap std::optional< std::vector< std::vector< int > > > Ifc4x3_rc1::IfcIndexedTriangleTextureMap::TexCoordIndex() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::vector< std::vector< int > > v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcIndexedTriangleTextureMap::setTexCoordIndex(const std::optional< std::vector< std::vector< int > > >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcIndexedTriangleTextureMap::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[555]); } const IfcParse::entity& Ifc4x3_rc1::IfcIndexedTriangleTextureMap::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[555]); } // Ifc4x3_rc1::IfcIndexedTriangleTextureMap::IfcIndexedTriangleTextureMap(const std::weak_ptr& e) : IfcIndexedTextureMap(e) { } // Ifc4x3_rc1::IfcIndexedTriangleTextureMap::IfcIndexedTriangleTextureMap(std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture > v1_Maps, ::Ifc4x3_rc1::IfcTessellatedFaceSet v2_MappedTo, ::Ifc4x3_rc1::IfcTextureVertexList v3_TexCoords, std::optional< std::vector< std::vector< int > > > v4_TexCoordIndex) : IfcIndexedTextureMap(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Maps)->generalize());set_attribute_value(1, (v2_MappedTo));set_attribute_value(2, (v3_TexCoords)); if (v4_TexCoordIndex) {set_attribute_value(3, (*v4_TexCoordIndex)); }; populate_derived(); } // Function implementations for IfcInterceptor std::optional< ::Ifc4x3_rc1::IfcInterceptorTypeEnum::Value > Ifc4x3_rc1::IfcInterceptor::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcInterceptorTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcInterceptor::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcInterceptorTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcInterceptorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcInterceptor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[559]); } const IfcParse::entity& Ifc4x3_rc1::IfcInterceptor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[559]); } // Ifc4x3_rc1::IfcInterceptor::IfcInterceptor(const std::weak_ptr& e) : IfcFlowTreatmentDevice(e) { } // Ifc4x3_rc1::IfcInterceptor::IfcInterceptor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcInterceptorTypeEnum::Value > v9_PredefinedType) : IfcFlowTreatmentDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcInterceptorTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcInterceptorType ::Ifc4x3_rc1::IfcInterceptorTypeEnum::Value Ifc4x3_rc1::IfcInterceptorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcInterceptorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcInterceptorType::setPredefinedType(const ::Ifc4x3_rc1::IfcInterceptorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcInterceptorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcInterceptorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[560]); } const IfcParse::entity& Ifc4x3_rc1::IfcInterceptorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[560]); } // Ifc4x3_rc1::IfcInterceptorType::IfcInterceptorType(const std::weak_ptr& e) : IfcFlowTreatmentDeviceType(e) { } // Ifc4x3_rc1::IfcInterceptorType::IfcInterceptorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcInterceptorTypeEnum::Value v10_PredefinedType) : IfcFlowTreatmentDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcInterceptorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcIntersectionCurve // const IfcParse::entity& Ifc4x3_rc1::IfcIntersectionCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[564]); } const IfcParse::entity& Ifc4x3_rc1::IfcIntersectionCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[564]); } // Ifc4x3_rc1::IfcIntersectionCurve::IfcIntersectionCurve(const std::weak_ptr& e) : IfcSurfaceCurve(e) { } // Ifc4x3_rc1::IfcIntersectionCurve::IfcIntersectionCurve(::Ifc4x3_rc1::IfcCurve v1_Curve3D, std::vector< ::Ifc4x3_rc1::IfcPcurve > v2_AssociatedGeometry, ::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation) : IfcSurfaceCurve(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Curve3D));set_attribute_value(1, (v2_AssociatedGeometry)->generalize());set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Class(),(size_t)v3_MasterRepresentation)));; populate_derived(); } // Function implementations for IfcInventory std::optional< ::Ifc4x3_rc1::IfcInventoryTypeEnum::Value > Ifc4x3_rc1::IfcInventory::PredefinedType() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcInventoryTypeEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcInventory::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcInventoryTypeEnum::Value >& v) { if (v) {set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcInventoryTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(5);} } ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcInventory::Jurisdiction() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcActorSelect{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcInventory::setJurisdiction(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< std::vector< ::Ifc4x3_rc1::IfcPerson > > Ifc4x3_rc1::IfcInventory::ResponsiblePersons() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcPerson>(es); } void Ifc4x3_rc1::IfcInventory::setResponsiblePersons(const std::optional< std::vector< ::Ifc4x3_rc1::IfcPerson > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcInventory::LastUpdateDate() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcInventory::setLastUpdateDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } ::Ifc4x3_rc1::IfcCostValue Ifc4x3_rc1::IfcInventory::CurrentValue() const { if(get_attribute_value(9).isNull()) { return ::Ifc4x3_rc1::IfcCostValue{}; } return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcCostValue>(); } void Ifc4x3_rc1::IfcInventory::setCurrentValue(const ::Ifc4x3_rc1::IfcCostValue& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } ::Ifc4x3_rc1::IfcCostValue Ifc4x3_rc1::IfcInventory::OriginalValue() const { if(get_attribute_value(10).isNull()) { return ::Ifc4x3_rc1::IfcCostValue{}; } return ((express::Base)(get_attribute_value(10))).as<::Ifc4x3_rc1::IfcCostValue>(); } void Ifc4x3_rc1::IfcInventory::setOriginalValue(const ::Ifc4x3_rc1::IfcCostValue& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } // const IfcParse::entity& Ifc4x3_rc1::IfcInventory::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[565]); } const IfcParse::entity& Ifc4x3_rc1::IfcInventory::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[565]); } // Ifc4x3_rc1::IfcInventory::IfcInventory(const std::weak_ptr& e) : IfcGroup(e) { } // Ifc4x3_rc1::IfcInventory::IfcInventory(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< ::Ifc4x3_rc1::IfcInventoryTypeEnum::Value > v6_PredefinedType, ::Ifc4x3_rc1::IfcActorSelect v7_Jurisdiction, std::optional< std::vector< ::Ifc4x3_rc1::IfcPerson > > v8_ResponsiblePersons, std::optional< std::string > v9_LastUpdateDate, ::Ifc4x3_rc1::IfcCostValue v10_CurrentValue, ::Ifc4x3_rc1::IfcCostValue v11_OriginalValue) : IfcGroup(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_PredefinedType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcInventoryTypeEnum::Class(),(size_t)*v6_PredefinedType))); } if (v7_Jurisdiction) {set_attribute_value(6, (*v7_Jurisdiction)); } if (v8_ResponsiblePersons) {set_attribute_value(7, (*v8_ResponsiblePersons)->generalize()); } if (v9_LastUpdateDate) {set_attribute_value(8, (*v9_LastUpdateDate)); } if (v10_CurrentValue) {set_attribute_value(9, (*v10_CurrentValue)); } if (v11_OriginalValue) {set_attribute_value(10, (*v11_OriginalValue)); }; populate_derived(); } // Function implementations for IfcIrregularTimeSeries std::vector< ::Ifc4x3_rc1::IfcIrregularTimeSeriesValue > Ifc4x3_rc1::IfcIrregularTimeSeries::Values() const { std::vector es = get_attribute_value(8); return cast_vector<::Ifc4x3_rc1::IfcIrregularTimeSeriesValue>(es); } void Ifc4x3_rc1::IfcIrregularTimeSeries::setValues(const std::vector< ::Ifc4x3_rc1::IfcIrregularTimeSeriesValue >& v) { set_attribute_value(8, cast_vector(v));if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcIrregularTimeSeries::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[568]); } const IfcParse::entity& Ifc4x3_rc1::IfcIrregularTimeSeries::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[568]); } // Ifc4x3_rc1::IfcIrregularTimeSeries::IfcIrregularTimeSeries(const std::weak_ptr& e) : IfcTimeSeries(e) { } // Ifc4x3_rc1::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name, std::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_rc1::IfcDataOriginEnum::Value v6_DataOrigin, std::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_rc1::IfcUnit v8_Unit, std::vector< ::Ifc4x3_rc1::IfcIrregularTimeSeriesValue > v9_Values) : IfcTimeSeries(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_StartTime));set_attribute_value(3, (v4_EndTime));set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Class(),(size_t)v5_TimeSeriesDataType)));set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)v6_DataOrigin))); if (v7_UserDefinedDataOrigin) {set_attribute_value(6, (*v7_UserDefinedDataOrigin)); } if (v8_Unit) {set_attribute_value(7, (*v8_Unit)); }set_attribute_value(8, (v9_Values)->generalize());; populate_derived(); } // Function implementations for IfcIrregularTimeSeriesValue std::string Ifc4x3_rc1::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcIrregularTimeSeriesValue::setTimeStamp(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcValue > Ifc4x3_rc1::IfcIrregularTimeSeriesValue::ListValues() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcValue>(es); } void Ifc4x3_rc1::IfcIrregularTimeSeriesValue::setListValues(const std::vector< ::Ifc4x3_rc1::IfcValue >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcIrregularTimeSeriesValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[569]); } const IfcParse::entity& Ifc4x3_rc1::IfcIrregularTimeSeriesValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[569]); } // Ifc4x3_rc1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, std::vector< ::Ifc4x3_rc1::IfcValue > v2_ListValues) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_TimeStamp));set_attribute_value(1, (v2_ListValues)->generalize());; populate_derived(); } // Function implementations for IfcJunctionBox std::optional< ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value > Ifc4x3_rc1::IfcJunctionBox::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcJunctionBox::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcJunctionBox::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[572]); } const IfcParse::entity& Ifc4x3_rc1::IfcJunctionBox::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[572]); } // Ifc4x3_rc1::IfcJunctionBox::IfcJunctionBox(const std::weak_ptr& e) : IfcFlowFitting(e) { } // Ifc4x3_rc1::IfcJunctionBox::IfcJunctionBox(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value > v9_PredefinedType) : IfcFlowFitting(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcJunctionBoxType ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value Ifc4x3_rc1::IfcJunctionBoxType::PredefinedType() const { return ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcJunctionBoxType::setPredefinedType(const ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcJunctionBoxType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[573]); } const IfcParse::entity& Ifc4x3_rc1::IfcJunctionBoxType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[573]); } // Ifc4x3_rc1::IfcJunctionBoxType::IfcJunctionBoxType(const std::weak_ptr& e) : IfcFlowFittingType(e) { } // Ifc4x3_rc1::IfcJunctionBoxType::IfcJunctionBoxType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value v10_PredefinedType) : IfcFlowFittingType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcKerb bool Ifc4x3_rc1::IfcKerb::Mountable() const { bool v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcKerb::setMountable(const bool& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcKerb::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[575]); } const IfcParse::entity& Ifc4x3_rc1::IfcKerb::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[575]); } // Ifc4x3_rc1::IfcKerb::IfcKerb(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcKerb::IfcKerb(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, bool v9_Mountable) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }set_attribute_value(8, (v9_Mountable));; populate_derived(); } // Function implementations for IfcKerbType bool Ifc4x3_rc1::IfcKerbType::Mountable() const { bool v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcKerbType::setMountable(const bool& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcKerbType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[576]); } const IfcParse::entity& Ifc4x3_rc1::IfcKerbType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[576]); } // Ifc4x3_rc1::IfcKerbType::IfcKerbType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcKerbType::IfcKerbType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, bool v10_Mountable) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (v10_Mountable));; populate_derived(); } // Function implementations for IfcLShapeProfileDef double Ifc4x3_rc1::IfcLShapeProfileDef::Depth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcLShapeProfileDef::setDepth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< double > Ifc4x3_rc1::IfcLShapeProfileDef::Width() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcLShapeProfileDef::setWidth(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } double Ifc4x3_rc1::IfcLShapeProfileDef::Thickness() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcLShapeProfileDef::setThickness(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } std::optional< double > Ifc4x3_rc1::IfcLShapeProfileDef::FilletRadius() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcLShapeProfileDef::setFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< double > Ifc4x3_rc1::IfcLShapeProfileDef::EdgeRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcLShapeProfileDef::setEdgeRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcLShapeProfileDef::LegSlope() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcLShapeProfileDef::setLegSlope(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcLShapeProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[629]); } const IfcParse::entity& Ifc4x3_rc1::IfcLShapeProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[629]); } // Ifc4x3_rc1::IfcLShapeProfileDef::IfcLShapeProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcLShapeProfileDef::IfcLShapeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_Depth, std::optional< double > v5_Width, double v6_Thickness, std::optional< double > v7_FilletRadius, std::optional< double > v8_EdgeRadius, std::optional< double > v9_LegSlope) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_Depth)); if (v5_Width) {set_attribute_value(4, (*v5_Width)); }set_attribute_value(5, (v6_Thickness)); if (v7_FilletRadius) {set_attribute_value(6, (*v7_FilletRadius)); } if (v8_EdgeRadius) {set_attribute_value(7, (*v8_EdgeRadius)); } if (v9_LegSlope) {set_attribute_value(8, (*v9_LegSlope)); }; populate_derived(); } // Function implementations for IfcLaborResource std::optional< ::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value > Ifc4x3_rc1::IfcLaborResource::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcLaborResourceTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcLaborResource::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcLaborResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[580]); } const IfcParse::entity& Ifc4x3_rc1::IfcLaborResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[580]); } // Ifc4x3_rc1::IfcLaborResource::IfcLaborResource(const std::weak_ptr& e) : IfcConstructionResource(e) { } // Ifc4x3_rc1::IfcLaborResource::IfcLaborResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, ::Ifc4x3_rc1::IfcResourceTime v8_Usage, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v9_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v10_BaseQuantity, std::optional< ::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value > v11_PredefinedType) : IfcConstructionResource(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_Usage) {set_attribute_value(7, (*v8_Usage)); } if (v9_BaseCosts) {set_attribute_value(8, (*v9_BaseCosts)->generalize()); } if (v10_BaseQuantity) {set_attribute_value(9, (*v10_BaseQuantity)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcLaborResourceType ::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value Ifc4x3_rc1::IfcLaborResourceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcLaborResourceTypeEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcLaborResourceType::setPredefinedType(const ::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcLaborResourceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[581]); } const IfcParse::entity& Ifc4x3_rc1::IfcLaborResourceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[581]); } // Ifc4x3_rc1::IfcLaborResourceType::IfcLaborResourceType(const std::weak_ptr& e) : IfcConstructionResourceType(e) { } // Ifc4x3_rc1::IfcLaborResourceType::IfcLaborResourceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ResourceType, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v11_BaseQuantity, ::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Value v12_PredefinedType) : IfcConstructionResourceType(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ResourceType) {set_attribute_value(8, (*v9_ResourceType)); } if (v10_BaseCosts) {set_attribute_value(9, (*v10_BaseCosts)->generalize()); } if (v11_BaseQuantity) {set_attribute_value(10, (*v11_BaseQuantity)); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcLaborResourceTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcLagTime ::Ifc4x3_rc1::IfcTimeOrRatioSelect Ifc4x3_rc1::IfcLagTime::LagValue() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcTimeOrRatioSelect>(); } void Ifc4x3_rc1::IfcLagTime::setLagValue(const ::Ifc4x3_rc1::IfcTimeOrRatioSelect& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcTaskDurationEnum::Value Ifc4x3_rc1::IfcLagTime::DurationType() const { return ::Ifc4x3_rc1::IfcTaskDurationEnum::FromString(get_attribute_value(4)); } void Ifc4x3_rc1::IfcLagTime::setDurationType(const ::Ifc4x3_rc1::IfcTaskDurationEnum::Value& v) { set_attribute_value(4, EnumerationReference(&::Ifc4x3_rc1::IfcTaskDurationEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcLagTime::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[583]); } const IfcParse::entity& Ifc4x3_rc1::IfcLagTime::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[583]); } // Ifc4x3_rc1::IfcLagTime::IfcLagTime(const std::weak_ptr& e) : IfcSchedulingTime(e) { } // Ifc4x3_rc1::IfcLagTime::IfcLagTime(std::optional< std::string > v1_Name, std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value > v2_DataOrigin, std::optional< std::string > v3_UserDefinedDataOrigin, ::Ifc4x3_rc1::IfcTimeOrRatioSelect v4_LagValue, ::Ifc4x3_rc1::IfcTaskDurationEnum::Value v5_DurationType) : IfcSchedulingTime(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DataOrigin) {set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)*v2_DataOrigin))); } if (v3_UserDefinedDataOrigin) {set_attribute_value(2, (*v3_UserDefinedDataOrigin)); }set_attribute_value(3, (v4_LagValue));set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcTaskDurationEnum::Class(),(size_t)v5_DurationType)));; populate_derived(); } // Function implementations for IfcLamp std::optional< ::Ifc4x3_rc1::IfcLampTypeEnum::Value > Ifc4x3_rc1::IfcLamp::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcLampTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcLamp::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcLampTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcLampTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcLamp::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[584]); } const IfcParse::entity& Ifc4x3_rc1::IfcLamp::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[584]); } // Ifc4x3_rc1::IfcLamp::IfcLamp(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcLamp::IfcLamp(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcLampTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcLampTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcLampType ::Ifc4x3_rc1::IfcLampTypeEnum::Value Ifc4x3_rc1::IfcLampType::PredefinedType() const { return ::Ifc4x3_rc1::IfcLampTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcLampType::setPredefinedType(const ::Ifc4x3_rc1::IfcLampTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcLampTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcLampType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[585]); } const IfcParse::entity& Ifc4x3_rc1::IfcLampType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[585]); } // Ifc4x3_rc1::IfcLampType::IfcLampType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcLampType::IfcLampType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcLampTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcLampTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcLibraryInformation std::string Ifc4x3_rc1::IfcLibraryInformation::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcLibraryInformation::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcLibraryInformation::Version() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcLibraryInformation::setVersion(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } ::Ifc4x3_rc1::IfcActorSelect Ifc4x3_rc1::IfcLibraryInformation::Publisher() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcActorSelect{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcActorSelect>(); } void Ifc4x3_rc1::IfcLibraryInformation::setPublisher(const ::Ifc4x3_rc1::IfcActorSelect& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::optional< std::string > Ifc4x3_rc1::IfcLibraryInformation::VersionDate() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcLibraryInformation::setVersionDate(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcLibraryInformation::Location() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcLibraryInformation::setLocation(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcLibraryInformation::Description() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcLibraryInformation::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::vector<::Ifc4x3_rc1::IfcRelAssociatesLibrary> Ifc4x3_rc1::IfcLibraryInformation::LibraryInfoForObjects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[924], 5)); } std::vector<::Ifc4x3_rc1::IfcLibraryReference> Ifc4x3_rc1::IfcLibraryInformation::HasLibraryReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[592], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcLibraryInformation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[591]); } const IfcParse::entity& Ifc4x3_rc1::IfcLibraryInformation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[591]); } // Ifc4x3_rc1::IfcLibraryInformation::IfcLibraryInformation(const std::weak_ptr& e) : IfcExternalInformation(e) { } // Ifc4x3_rc1::IfcLibraryInformation::IfcLibraryInformation(std::string v1_Name, std::optional< std::string > v2_Version, ::Ifc4x3_rc1::IfcActorSelect v3_Publisher, std::optional< std::string > v4_VersionDate, std::optional< std::string > v5_Location, std::optional< std::string > v6_Description) : IfcExternalInformation(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_Name)); if (v2_Version) {set_attribute_value(1, (*v2_Version)); } if (v3_Publisher) {set_attribute_value(2, (*v3_Publisher)); } if (v4_VersionDate) {set_attribute_value(3, (*v4_VersionDate)); } if (v5_Location) {set_attribute_value(4, (*v5_Location)); } if (v6_Description) {set_attribute_value(5, (*v6_Description)); }; populate_derived(); } // Function implementations for IfcLibraryReference std::optional< std::string > Ifc4x3_rc1::IfcLibraryReference::Description() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcLibraryReference::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcLibraryReference::Language() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcLibraryReference::setLanguage(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } ::Ifc4x3_rc1::IfcLibraryInformation Ifc4x3_rc1::IfcLibraryReference::ReferencedLibrary() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcLibraryInformation{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcLibraryInformation>(); } void Ifc4x3_rc1::IfcLibraryReference::setReferencedLibrary(const ::Ifc4x3_rc1::IfcLibraryInformation& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } std::vector<::Ifc4x3_rc1::IfcRelAssociatesLibrary> Ifc4x3_rc1::IfcLibraryReference::LibraryRefForObjects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[924], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcLibraryReference::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[592]); } const IfcParse::entity& Ifc4x3_rc1::IfcLibraryReference::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[592]); } // Ifc4x3_rc1::IfcLibraryReference::IfcLibraryReference(const std::weak_ptr& e) : IfcExternalReference(e) { } // Ifc4x3_rc1::IfcLibraryReference::IfcLibraryReference(std::optional< std::string > v1_Location, std::optional< std::string > v2_Identification, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_Language, ::Ifc4x3_rc1::IfcLibraryInformation v6_ReferencedLibrary) : IfcExternalReference(const std::weak_ptr&(in_memory_attribute_storage(6))) { if (v1_Location) {set_attribute_value(0, (*v1_Location)); } if (v2_Identification) {set_attribute_value(1, (*v2_Identification)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_Language) {set_attribute_value(4, (*v5_Language)); } if (v6_ReferencedLibrary) {set_attribute_value(5, (*v6_ReferencedLibrary)); }; populate_derived(); } // Function implementations for IfcLightDistributionData double Ifc4x3_rc1::IfcLightDistributionData::MainPlaneAngle() const { double v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcLightDistributionData::setMainPlaneAngle(const double& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< double > /*[1:?]*/ Ifc4x3_rc1::IfcLightDistributionData::SecondaryPlaneAngle() const { std::vector< double > /*[1:?]*/ v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcLightDistributionData::setSecondaryPlaneAngle(const std::vector< double > /*[1:?]*/& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::vector< double > /*[1:?]*/ Ifc4x3_rc1::IfcLightDistributionData::LuminousIntensity() const { std::vector< double > /*[1:?]*/ v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcLightDistributionData::setLuminousIntensity(const std::vector< double > /*[1:?]*/& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcLightDistributionData::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[595]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightDistributionData::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[595]); } // Ifc4x3_rc1::IfcLightDistributionData::IfcLightDistributionData(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcLightDistributionData::IfcLightDistributionData(double v1_MainPlaneAngle, std::vector< double > /*[1:?]*/ v2_SecondaryPlaneAngle, std::vector< double > /*[1:?]*/ v3_LuminousIntensity) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_MainPlaneAngle));set_attribute_value(1, (v2_SecondaryPlaneAngle));set_attribute_value(2, (v3_LuminousIntensity));; populate_derived(); } // Function implementations for IfcLightFixture std::optional< ::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value > Ifc4x3_rc1::IfcLightFixture::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcLightFixtureTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcLightFixture::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcLightFixture::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[598]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightFixture::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[598]); } // Ifc4x3_rc1::IfcLightFixture::IfcLightFixture(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcLightFixture::IfcLightFixture(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcLightFixtureType ::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value Ifc4x3_rc1::IfcLightFixtureType::PredefinedType() const { return ::Ifc4x3_rc1::IfcLightFixtureTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcLightFixtureType::setPredefinedType(const ::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcLightFixtureType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[599]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightFixtureType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[599]); } // Ifc4x3_rc1::IfcLightFixtureType::IfcLightFixtureType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcLightFixtureType::IfcLightFixtureType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcLightFixtureTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcLightIntensityDistribution ::Ifc4x3_rc1::IfcLightDistributionCurveEnum::Value Ifc4x3_rc1::IfcLightIntensityDistribution::LightDistributionCurve() const { return ::Ifc4x3_rc1::IfcLightDistributionCurveEnum::FromString(get_attribute_value(0)); } void Ifc4x3_rc1::IfcLightIntensityDistribution::setLightDistributionCurve(const ::Ifc4x3_rc1::IfcLightDistributionCurveEnum::Value& v) { set_attribute_value(0, EnumerationReference(&::Ifc4x3_rc1::IfcLightDistributionCurveEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcLightDistributionData > Ifc4x3_rc1::IfcLightIntensityDistribution::DistributionData() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcLightDistributionData>(es); } void Ifc4x3_rc1::IfcLightIntensityDistribution::setDistributionData(const std::vector< ::Ifc4x3_rc1::IfcLightDistributionData >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcLightIntensityDistribution::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[601]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightIntensityDistribution::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[601]); } // Ifc4x3_rc1::IfcLightIntensityDistribution::IfcLightIntensityDistribution(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcLightIntensityDistribution::IfcLightIntensityDistribution(::Ifc4x3_rc1::IfcLightDistributionCurveEnum::Value v1_LightDistributionCurve, std::vector< ::Ifc4x3_rc1::IfcLightDistributionData > v2_DistributionData) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcLightDistributionCurveEnum::Class(),(size_t)v1_LightDistributionCurve)));set_attribute_value(1, (v2_DistributionData)->generalize());; populate_derived(); } // Function implementations for IfcLightSource std::optional< std::string > Ifc4x3_rc1::IfcLightSource::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcLightSource::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } ::Ifc4x3_rc1::IfcColourRgb Ifc4x3_rc1::IfcLightSource::LightColour() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcColourRgb>(); } void Ifc4x3_rc1::IfcLightSource::setLightColour(const ::Ifc4x3_rc1::IfcColourRgb& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< double > Ifc4x3_rc1::IfcLightSource::AmbientIntensity() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcLightSource::setAmbientIntensity(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcLightSource::Intensity() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcLightSource::setIntensity(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcLightSource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[602]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightSource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[602]); } // Ifc4x3_rc1::IfcLightSource::IfcLightSource(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcLightSource::IfcLightSource(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcColourRgb v2_LightColour, std::optional< double > v3_AmbientIntensity, std::optional< double > v4_Intensity) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_LightColour)); if (v3_AmbientIntensity) {set_attribute_value(2, (*v3_AmbientIntensity)); } if (v4_Intensity) {set_attribute_value(3, (*v4_Intensity)); }; populate_derived(); } // Function implementations for IfcLightSourceAmbient // const IfcParse::entity& Ifc4x3_rc1::IfcLightSourceAmbient::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[603]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightSourceAmbient::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[603]); } // Ifc4x3_rc1::IfcLightSourceAmbient::IfcLightSourceAmbient(const std::weak_ptr& e) : IfcLightSource(e) { } // Ifc4x3_rc1::IfcLightSourceAmbient::IfcLightSourceAmbient(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcColourRgb v2_LightColour, std::optional< double > v3_AmbientIntensity, std::optional< double > v4_Intensity) : IfcLightSource(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_LightColour)); if (v3_AmbientIntensity) {set_attribute_value(2, (*v3_AmbientIntensity)); } if (v4_Intensity) {set_attribute_value(3, (*v4_Intensity)); }; populate_derived(); } // Function implementations for IfcLightSourceDirectional ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcLightSourceDirectional::Orientation() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcLightSourceDirectional::setOrientation(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcLightSourceDirectional::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[604]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightSourceDirectional::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[604]); } // Ifc4x3_rc1::IfcLightSourceDirectional::IfcLightSourceDirectional(const std::weak_ptr& e) : IfcLightSource(e) { } // Ifc4x3_rc1::IfcLightSourceDirectional::IfcLightSourceDirectional(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcColourRgb v2_LightColour, std::optional< double > v3_AmbientIntensity, std::optional< double > v4_Intensity, ::Ifc4x3_rc1::IfcDirection v5_Orientation) : IfcLightSource(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_LightColour)); if (v3_AmbientIntensity) {set_attribute_value(2, (*v3_AmbientIntensity)); } if (v4_Intensity) {set_attribute_value(3, (*v4_Intensity)); }set_attribute_value(4, (v5_Orientation));; populate_derived(); } // Function implementations for IfcLightSourceGoniometric ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcLightSourceGoniometric::Position() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcLightSourceGoniometric::setPosition(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcColourRgb Ifc4x3_rc1::IfcLightSourceGoniometric::ColourAppearance() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcColourRgb{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcColourRgb>(); } void Ifc4x3_rc1::IfcLightSourceGoniometric::setColourAppearance(const ::Ifc4x3_rc1::IfcColourRgb& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcLightSourceGoniometric::ColourTemperature() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcLightSourceGoniometric::setColourTemperature(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } double Ifc4x3_rc1::IfcLightSourceGoniometric::LuminousFlux() const { double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcLightSourceGoniometric::setLuminousFlux(const double& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcLightEmissionSourceEnum::Value Ifc4x3_rc1::IfcLightSourceGoniometric::LightEmissionSource() const { return ::Ifc4x3_rc1::IfcLightEmissionSourceEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcLightSourceGoniometric::setLightEmissionSource(const ::Ifc4x3_rc1::IfcLightEmissionSourceEnum::Value& v) { set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcLightEmissionSourceEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(8); } ::Ifc4x3_rc1::IfcLightDistributionDataSourceSelect Ifc4x3_rc1::IfcLightSourceGoniometric::LightDistributionDataSource() const { return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcLightDistributionDataSourceSelect>(); } void Ifc4x3_rc1::IfcLightSourceGoniometric::setLightDistributionDataSource(const ::Ifc4x3_rc1::IfcLightDistributionDataSourceSelect& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcLightSourceGoniometric::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[605]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightSourceGoniometric::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[605]); } // Ifc4x3_rc1::IfcLightSourceGoniometric::IfcLightSourceGoniometric(const std::weak_ptr& e) : IfcLightSource(e) { } // Ifc4x3_rc1::IfcLightSourceGoniometric::IfcLightSourceGoniometric(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcColourRgb v2_LightColour, std::optional< double > v3_AmbientIntensity, std::optional< double > v4_Intensity, ::Ifc4x3_rc1::IfcAxis2Placement3D v5_Position, ::Ifc4x3_rc1::IfcColourRgb v6_ColourAppearance, double v7_ColourTemperature, double v8_LuminousFlux, ::Ifc4x3_rc1::IfcLightEmissionSourceEnum::Value v9_LightEmissionSource, ::Ifc4x3_rc1::IfcLightDistributionDataSourceSelect v10_LightDistributionDataSource) : IfcLightSource(const std::weak_ptr&(in_memory_attribute_storage(10))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_LightColour)); if (v3_AmbientIntensity) {set_attribute_value(2, (*v3_AmbientIntensity)); } if (v4_Intensity) {set_attribute_value(3, (*v4_Intensity)); }set_attribute_value(4, (v5_Position)); if (v6_ColourAppearance) {set_attribute_value(5, (*v6_ColourAppearance)); }set_attribute_value(6, (v7_ColourTemperature));set_attribute_value(7, (v8_LuminousFlux));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcLightEmissionSourceEnum::Class(),(size_t)v9_LightEmissionSource)));set_attribute_value(9, (v10_LightDistributionDataSource));; populate_derived(); } // Function implementations for IfcLightSourcePositional ::Ifc4x3_rc1::IfcCartesianPoint Ifc4x3_rc1::IfcLightSourcePositional::Position() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcCartesianPoint>(); } void Ifc4x3_rc1::IfcLightSourcePositional::setPosition(const ::Ifc4x3_rc1::IfcCartesianPoint& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcLightSourcePositional::Radius() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcLightSourcePositional::setRadius(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcLightSourcePositional::ConstantAttenuation() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcLightSourcePositional::setConstantAttenuation(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } double Ifc4x3_rc1::IfcLightSourcePositional::DistanceAttenuation() const { double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcLightSourcePositional::setDistanceAttenuation(const double& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } double Ifc4x3_rc1::IfcLightSourcePositional::QuadricAttenuation() const { double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcLightSourcePositional::setQuadricAttenuation(const double& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcLightSourcePositional::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[606]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightSourcePositional::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[606]); } // Ifc4x3_rc1::IfcLightSourcePositional::IfcLightSourcePositional(const std::weak_ptr& e) : IfcLightSource(e) { } // Ifc4x3_rc1::IfcLightSourcePositional::IfcLightSourcePositional(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcColourRgb v2_LightColour, std::optional< double > v3_AmbientIntensity, std::optional< double > v4_Intensity, ::Ifc4x3_rc1::IfcCartesianPoint v5_Position, double v6_Radius, double v7_ConstantAttenuation, double v8_DistanceAttenuation, double v9_QuadricAttenuation) : IfcLightSource(const std::weak_ptr&(in_memory_attribute_storage(9))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_LightColour)); if (v3_AmbientIntensity) {set_attribute_value(2, (*v3_AmbientIntensity)); } if (v4_Intensity) {set_attribute_value(3, (*v4_Intensity)); }set_attribute_value(4, (v5_Position));set_attribute_value(5, (v6_Radius));set_attribute_value(6, (v7_ConstantAttenuation));set_attribute_value(7, (v8_DistanceAttenuation));set_attribute_value(8, (v9_QuadricAttenuation));; populate_derived(); } // Function implementations for IfcLightSourceSpot ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcLightSourceSpot::Orientation() const { return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcLightSourceSpot::setOrientation(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } std::optional< double > Ifc4x3_rc1::IfcLightSourceSpot::ConcentrationExponent() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcLightSourceSpot::setConcentrationExponent(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } double Ifc4x3_rc1::IfcLightSourceSpot::SpreadAngle() const { double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcLightSourceSpot::setSpreadAngle(const double& v) { set_attribute_value(11, v);if constexpr (false)unset_attribute_value(11); } double Ifc4x3_rc1::IfcLightSourceSpot::BeamWidthAngle() const { double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcLightSourceSpot::setBeamWidthAngle(const double& v) { set_attribute_value(12, v);if constexpr (false)unset_attribute_value(12); } // const IfcParse::entity& Ifc4x3_rc1::IfcLightSourceSpot::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[607]); } const IfcParse::entity& Ifc4x3_rc1::IfcLightSourceSpot::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[607]); } // Ifc4x3_rc1::IfcLightSourceSpot::IfcLightSourceSpot(const std::weak_ptr& e) : IfcLightSourcePositional(e) { } // Ifc4x3_rc1::IfcLightSourceSpot::IfcLightSourceSpot(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcColourRgb v2_LightColour, std::optional< double > v3_AmbientIntensity, std::optional< double > v4_Intensity, ::Ifc4x3_rc1::IfcCartesianPoint v5_Position, double v6_Radius, double v7_ConstantAttenuation, double v8_DistanceAttenuation, double v9_QuadricAttenuation, ::Ifc4x3_rc1::IfcDirection v10_Orientation, std::optional< double > v11_ConcentrationExponent, double v12_SpreadAngle, double v13_BeamWidthAngle) : IfcLightSourcePositional(const std::weak_ptr&(in_memory_attribute_storage(13))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_LightColour)); if (v3_AmbientIntensity) {set_attribute_value(2, (*v3_AmbientIntensity)); } if (v4_Intensity) {set_attribute_value(3, (*v4_Intensity)); }set_attribute_value(4, (v5_Position));set_attribute_value(5, (v6_Radius));set_attribute_value(6, (v7_ConstantAttenuation));set_attribute_value(7, (v8_DistanceAttenuation));set_attribute_value(8, (v9_QuadricAttenuation));set_attribute_value(9, (v10_Orientation)); if (v11_ConcentrationExponent) {set_attribute_value(10, (*v11_ConcentrationExponent)); }set_attribute_value(11, (v12_SpreadAngle));set_attribute_value(12, (v13_BeamWidthAngle));; populate_derived(); } // Function implementations for IfcLine ::Ifc4x3_rc1::IfcCartesianPoint Ifc4x3_rc1::IfcLine::Pnt() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCartesianPoint>(); } void Ifc4x3_rc1::IfcLine::setPnt(const ::Ifc4x3_rc1::IfcCartesianPoint& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcVector Ifc4x3_rc1::IfcLine::Dir() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcVector>(); } void Ifc4x3_rc1::IfcLine::setDir(const ::Ifc4x3_rc1::IfcVector& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcLine::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[608]); } const IfcParse::entity& Ifc4x3_rc1::IfcLine::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[608]); } // Ifc4x3_rc1::IfcLine::IfcLine(const std::weak_ptr& e) : IfcCurve(e) { } // Ifc4x3_rc1::IfcLine::IfcLine(::Ifc4x3_rc1::IfcCartesianPoint v1_Pnt, ::Ifc4x3_rc1::IfcVector v2_Dir) : IfcCurve(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Pnt));set_attribute_value(1, (v2_Dir));; populate_derived(); } // Function implementations for IfcLineSegment2D // const IfcParse::entity& Ifc4x3_rc1::IfcLineSegment2D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[620]); } const IfcParse::entity& Ifc4x3_rc1::IfcLineSegment2D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[620]); } // Ifc4x3_rc1::IfcLineSegment2D::IfcLineSegment2D(const std::weak_ptr& e) : IfcCurveSegment2D(e) { } // Ifc4x3_rc1::IfcLineSegment2D::IfcLineSegment2D(::Ifc4x3_rc1::IfcCartesianPoint v1_StartPoint, double v2_StartDirection, double v3_SegmentLength) : IfcCurveSegment2D(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_StartPoint));set_attribute_value(1, (v2_StartDirection));set_attribute_value(2, (v3_SegmentLength));; populate_derived(); } // Function implementations for IfcLinearAxisWithInclination ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcLinearAxisWithInclination::Directrix() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcLinearAxisWithInclination::setDirectrix(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcAxisLateralInclination Ifc4x3_rc1::IfcLinearAxisWithInclination::Inclinating() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcAxisLateralInclination>(); } void Ifc4x3_rc1::IfcLinearAxisWithInclination::setInclinating(const ::Ifc4x3_rc1::IfcAxisLateralInclination& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcLinearAxisWithInclination::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[610]); } const IfcParse::entity& Ifc4x3_rc1::IfcLinearAxisWithInclination::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[610]); } // Ifc4x3_rc1::IfcLinearAxisWithInclination::IfcLinearAxisWithInclination(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcLinearAxisWithInclination::IfcLinearAxisWithInclination(::Ifc4x3_rc1::IfcCurve v1_Directrix, ::Ifc4x3_rc1::IfcAxisLateralInclination v2_Inclinating) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Directrix));set_attribute_value(1, (v2_Inclinating));; populate_derived(); } // Function implementations for IfcLinearPlacement ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcLinearPlacement::PlacementMeasuredAlong() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcLinearPlacement::setPlacementMeasuredAlong(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcDistanceExpression Ifc4x3_rc1::IfcLinearPlacement::Distance() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcDistanceExpression>(); } void Ifc4x3_rc1::IfcLinearPlacement::setDistance(const ::Ifc4x3_rc1::IfcDistanceExpression& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcOrientationExpression Ifc4x3_rc1::IfcLinearPlacement::Orientation() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcOrientationExpression{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcOrientationExpression>(); } void Ifc4x3_rc1::IfcLinearPlacement::setOrientation(const ::Ifc4x3_rc1::IfcOrientationExpression& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcLinearPlacement::CartesianPosition() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcAxis2Placement3D{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcLinearPlacement::setCartesianPosition(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcLinearPlacement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[613]); } const IfcParse::entity& Ifc4x3_rc1::IfcLinearPlacement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[613]); } // Ifc4x3_rc1::IfcLinearPlacement::IfcLinearPlacement(const std::weak_ptr& e) : IfcObjectPlacement(e) { } // Ifc4x3_rc1::IfcLinearPlacement::IfcLinearPlacement(::Ifc4x3_rc1::IfcObjectPlacement v1_PlacementRelTo, ::Ifc4x3_rc1::IfcCurve v2_PlacementMeasuredAlong, ::Ifc4x3_rc1::IfcDistanceExpression v3_Distance, ::Ifc4x3_rc1::IfcOrientationExpression v4_Orientation, ::Ifc4x3_rc1::IfcAxis2Placement3D v5_CartesianPosition) : IfcObjectPlacement(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_PlacementRelTo) {set_attribute_value(0, (*v1_PlacementRelTo)); }set_attribute_value(1, (v2_PlacementMeasuredAlong));set_attribute_value(2, (v3_Distance)); if (v4_Orientation) {set_attribute_value(3, (*v4_Orientation)); } if (v5_CartesianPosition) {set_attribute_value(4, (*v5_CartesianPosition)); }; populate_derived(); } // Function implementations for IfcLinearPlacementWithInclination ::Ifc4x3_rc1::IfcAxisLateralInclination Ifc4x3_rc1::IfcLinearPlacementWithInclination::Inclinating() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcAxisLateralInclination>(); } void Ifc4x3_rc1::IfcLinearPlacementWithInclination::setInclinating(const ::Ifc4x3_rc1::IfcAxisLateralInclination& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcLinearPlacementWithInclination::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[614]); } const IfcParse::entity& Ifc4x3_rc1::IfcLinearPlacementWithInclination::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[614]); } // Ifc4x3_rc1::IfcLinearPlacementWithInclination::IfcLinearPlacementWithInclination(const std::weak_ptr& e) : IfcLinearPlacement(e) { } // Ifc4x3_rc1::IfcLinearPlacementWithInclination::IfcLinearPlacementWithInclination(::Ifc4x3_rc1::IfcObjectPlacement v1_PlacementRelTo, ::Ifc4x3_rc1::IfcCurve v2_PlacementMeasuredAlong, ::Ifc4x3_rc1::IfcDistanceExpression v3_Distance, ::Ifc4x3_rc1::IfcOrientationExpression v4_Orientation, ::Ifc4x3_rc1::IfcAxis2Placement3D v5_CartesianPosition, ::Ifc4x3_rc1::IfcAxisLateralInclination v6_Inclinating) : IfcLinearPlacement(const std::weak_ptr&(in_memory_attribute_storage(6))) { if (v1_PlacementRelTo) {set_attribute_value(0, (*v1_PlacementRelTo)); }set_attribute_value(1, (v2_PlacementMeasuredAlong));set_attribute_value(2, (v3_Distance)); if (v4_Orientation) {set_attribute_value(3, (*v4_Orientation)); } if (v5_CartesianPosition) {set_attribute_value(4, (*v5_CartesianPosition)); }set_attribute_value(5, (v6_Inclinating));; populate_derived(); } // Function implementations for IfcLinearPositioningElement ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcLinearPositioningElement::Axis() const { return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcLinearPositioningElement::setAxis(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcLinearPositioningElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[615]); } const IfcParse::entity& Ifc4x3_rc1::IfcLinearPositioningElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[615]); } // Ifc4x3_rc1::IfcLinearPositioningElement::IfcLinearPositioningElement(const std::weak_ptr& e) : IfcPositioningElement(e) { } // Ifc4x3_rc1::IfcLinearPositioningElement::IfcLinearPositioningElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcCurve v8_Axis) : IfcPositioningElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_Axis));; populate_derived(); } // Function implementations for IfcLinearSpanPlacement double Ifc4x3_rc1::IfcLinearSpanPlacement::Span() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcLinearSpanPlacement::setSpan(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcLinearSpanPlacement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[616]); } const IfcParse::entity& Ifc4x3_rc1::IfcLinearSpanPlacement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[616]); } // Ifc4x3_rc1::IfcLinearSpanPlacement::IfcLinearSpanPlacement(const std::weak_ptr& e) : IfcLinearPlacement(e) { } // Ifc4x3_rc1::IfcLinearSpanPlacement::IfcLinearSpanPlacement(::Ifc4x3_rc1::IfcObjectPlacement v1_PlacementRelTo, ::Ifc4x3_rc1::IfcCurve v2_PlacementMeasuredAlong, ::Ifc4x3_rc1::IfcDistanceExpression v3_Distance, ::Ifc4x3_rc1::IfcOrientationExpression v4_Orientation, ::Ifc4x3_rc1::IfcAxis2Placement3D v5_CartesianPosition, double v6_Span) : IfcLinearPlacement(const std::weak_ptr&(in_memory_attribute_storage(6))) { if (v1_PlacementRelTo) {set_attribute_value(0, (*v1_PlacementRelTo)); }set_attribute_value(1, (v2_PlacementMeasuredAlong));set_attribute_value(2, (v3_Distance)); if (v4_Orientation) {set_attribute_value(3, (*v4_Orientation)); } if (v5_CartesianPosition) {set_attribute_value(4, (*v5_CartesianPosition)); }set_attribute_value(5, (v6_Span));; populate_derived(); } // Function implementations for IfcLiquidTerminal std::optional< ::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value > Ifc4x3_rc1::IfcLiquidTerminal::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcLiquidTerminal::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcLiquidTerminal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[621]); } const IfcParse::entity& Ifc4x3_rc1::IfcLiquidTerminal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[621]); } // Ifc4x3_rc1::IfcLiquidTerminal::IfcLiquidTerminal(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcLiquidTerminal::IfcLiquidTerminal(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcLiquidTerminalType ::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value Ifc4x3_rc1::IfcLiquidTerminalType::PredefinedType() const { return ::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcLiquidTerminalType::setPredefinedType(const ::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcLiquidTerminalType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[622]); } const IfcParse::entity& Ifc4x3_rc1::IfcLiquidTerminalType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[622]); } // Ifc4x3_rc1::IfcLiquidTerminalType::IfcLiquidTerminalType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcLiquidTerminalType::IfcLiquidTerminalType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcLocalPlacement ::Ifc4x3_rc1::IfcAxis2Placement Ifc4x3_rc1::IfcLocalPlacement::RelativePlacement() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcAxis2Placement>(); } void Ifc4x3_rc1::IfcLocalPlacement::setRelativePlacement(const ::Ifc4x3_rc1::IfcAxis2Placement& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcLocalPlacement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[625]); } const IfcParse::entity& Ifc4x3_rc1::IfcLocalPlacement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[625]); } // Ifc4x3_rc1::IfcLocalPlacement::IfcLocalPlacement(const std::weak_ptr& e) : IfcObjectPlacement(e) { } // Ifc4x3_rc1::IfcLocalPlacement::IfcLocalPlacement(::Ifc4x3_rc1::IfcObjectPlacement v1_PlacementRelTo, ::Ifc4x3_rc1::IfcAxis2Placement v2_RelativePlacement) : IfcObjectPlacement(const std::weak_ptr&(in_memory_attribute_storage(2))) { if (v1_PlacementRelTo) {set_attribute_value(0, (*v1_PlacementRelTo)); }set_attribute_value(1, (v2_RelativePlacement));; populate_derived(); } // Function implementations for IfcLoop // const IfcParse::entity& Ifc4x3_rc1::IfcLoop::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[628]); } const IfcParse::entity& Ifc4x3_rc1::IfcLoop::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[628]); } // Ifc4x3_rc1::IfcLoop::IfcLoop(const std::weak_ptr& e) : IfcTopologicalRepresentationItem(e) { } // Ifc4x3_rc1::IfcLoop::IfcLoop() : IfcTopologicalRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcManifoldSolidBrep ::Ifc4x3_rc1::IfcClosedShell Ifc4x3_rc1::IfcManifoldSolidBrep::Outer() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcClosedShell>(); } void Ifc4x3_rc1::IfcManifoldSolidBrep::setOuter(const ::Ifc4x3_rc1::IfcClosedShell& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcManifoldSolidBrep::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[635]); } const IfcParse::entity& Ifc4x3_rc1::IfcManifoldSolidBrep::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[635]); } // Ifc4x3_rc1::IfcManifoldSolidBrep::IfcManifoldSolidBrep(const std::weak_ptr& e) : IfcSolidModel(e) { } // Ifc4x3_rc1::IfcManifoldSolidBrep::IfcManifoldSolidBrep(::Ifc4x3_rc1::IfcClosedShell v1_Outer) : IfcSolidModel(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Outer));; populate_derived(); } // Function implementations for IfcMapConversion double Ifc4x3_rc1::IfcMapConversion::Eastings() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcMapConversion::setEastings(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcMapConversion::Northings() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcMapConversion::setNorthings(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcMapConversion::OrthogonalHeight() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcMapConversion::setOrthogonalHeight(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::optional< double > Ifc4x3_rc1::IfcMapConversion::XAxisAbscissa() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcMapConversion::setXAxisAbscissa(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< double > Ifc4x3_rc1::IfcMapConversion::XAxisOrdinate() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcMapConversion::setXAxisOrdinate(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< double > Ifc4x3_rc1::IfcMapConversion::Scale() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcMapConversion::setScale(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMapConversion::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[636]); } const IfcParse::entity& Ifc4x3_rc1::IfcMapConversion::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[636]); } // Ifc4x3_rc1::IfcMapConversion::IfcMapConversion(const std::weak_ptr& e) : IfcCoordinateOperation(e) { } // Ifc4x3_rc1::IfcMapConversion::IfcMapConversion(::Ifc4x3_rc1::IfcCoordinateReferenceSystemSelect v1_SourceCRS, ::Ifc4x3_rc1::IfcCoordinateReferenceSystem v2_TargetCRS, double v3_Eastings, double v4_Northings, double v5_OrthogonalHeight, std::optional< double > v6_XAxisAbscissa, std::optional< double > v7_XAxisOrdinate, std::optional< double > v8_Scale) : IfcCoordinateOperation(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_SourceCRS));set_attribute_value(1, (v2_TargetCRS));set_attribute_value(2, (v3_Eastings));set_attribute_value(3, (v4_Northings));set_attribute_value(4, (v5_OrthogonalHeight)); if (v6_XAxisAbscissa) {set_attribute_value(5, (*v6_XAxisAbscissa)); } if (v7_XAxisOrdinate) {set_attribute_value(6, (*v7_XAxisOrdinate)); } if (v8_Scale) {set_attribute_value(7, (*v8_Scale)); }; populate_derived(); } // Function implementations for IfcMappedItem ::Ifc4x3_rc1::IfcRepresentationMap Ifc4x3_rc1::IfcMappedItem::MappingSource() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcRepresentationMap>(); } void Ifc4x3_rc1::IfcMappedItem::setMappingSource(const ::Ifc4x3_rc1::IfcRepresentationMap& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcCartesianTransformationOperator Ifc4x3_rc1::IfcMappedItem::MappingTarget() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCartesianTransformationOperator>(); } void Ifc4x3_rc1::IfcMappedItem::setMappingTarget(const ::Ifc4x3_rc1::IfcCartesianTransformationOperator& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcMappedItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[637]); } const IfcParse::entity& Ifc4x3_rc1::IfcMappedItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[637]); } // Ifc4x3_rc1::IfcMappedItem::IfcMappedItem(const std::weak_ptr& e) : IfcRepresentationItem(e) { } // Ifc4x3_rc1::IfcMappedItem::IfcMappedItem(::Ifc4x3_rc1::IfcRepresentationMap v1_MappingSource, ::Ifc4x3_rc1::IfcCartesianTransformationOperator v2_MappingTarget) : IfcRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_MappingSource));set_attribute_value(1, (v2_MappingTarget));; populate_derived(); } // Function implementations for IfcMarineFacility ::Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Value Ifc4x3_rc1::IfcMarineFacility::PredefinedType() const { return ::Ifc4x3_rc1::IfcMarineFacilityTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcMarineFacility::setPredefinedType(const ::Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcMarineFacility::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[638]); } const IfcParse::entity& Ifc4x3_rc1::IfcMarineFacility::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[638]); } // Ifc4x3_rc1::IfcMarineFacility::IfcMarineFacility(const std::weak_ptr& e) : IfcFacility(e) { } // Ifc4x3_rc1::IfcMarineFacility::IfcMarineFacility(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType, ::Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Value v10_PredefinedType) : IfcFacility(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcMarineFacilityTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcMaterial std::string Ifc4x3_rc1::IfcMaterial::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcMaterial::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcMaterial::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcMaterial::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterial::Category() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcMaterial::setCategory(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::vector<::Ifc4x3_rc1::IfcMaterialDefinitionRepresentation> Ifc4x3_rc1::IfcMaterial::HasRepresentation() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[650], 3)); } std::vector<::Ifc4x3_rc1::IfcMaterialRelationship> Ifc4x3_rc1::IfcMaterial::IsRelatedWith() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[662], 3)); } std::vector<::Ifc4x3_rc1::IfcMaterialRelationship> Ifc4x3_rc1::IfcMaterial::RelatesTo() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[662], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterial::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[645]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterial::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[645]); } // Ifc4x3_rc1::IfcMaterial::IfcMaterial(const std::weak_ptr& e) : IfcMaterialDefinition(e) { } // Ifc4x3_rc1::IfcMaterial::IfcMaterial(std::string v1_Name, std::optional< std::string > v2_Description, std::optional< std::string > v3_Category) : IfcMaterialDefinition(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Category) {set_attribute_value(2, (*v3_Category)); }; populate_derived(); } // Function implementations for IfcMaterialClassificationRelationship std::vector< ::Ifc4x3_rc1::IfcClassificationSelect > Ifc4x3_rc1::IfcMaterialClassificationRelationship::MaterialClassifications() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcClassificationSelect>(es); } void Ifc4x3_rc1::IfcMaterialClassificationRelationship::setMaterialClassifications(const std::vector< ::Ifc4x3_rc1::IfcClassificationSelect >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcMaterial Ifc4x3_rc1::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcMaterial>(); } void Ifc4x3_rc1::IfcMaterialClassificationRelationship::setClassifiedMaterial(const ::Ifc4x3_rc1::IfcMaterial& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialClassificationRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[646]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialClassificationRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[646]); } // Ifc4x3_rc1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(std::vector< ::Ifc4x3_rc1::IfcClassificationSelect > v1_MaterialClassifications, ::Ifc4x3_rc1::IfcMaterial v2_ClassifiedMaterial) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_MaterialClassifications)->generalize());set_attribute_value(1, (v2_ClassifiedMaterial));; populate_derived(); } // Function implementations for IfcMaterialConstituent std::optional< std::string > Ifc4x3_rc1::IfcMaterialConstituent::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcMaterialConstituent::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialConstituent::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcMaterialConstituent::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } ::Ifc4x3_rc1::IfcMaterial Ifc4x3_rc1::IfcMaterialConstituent::Material() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcMaterial>(); } void Ifc4x3_rc1::IfcMaterialConstituent::setMaterial(const ::Ifc4x3_rc1::IfcMaterial& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::optional< double > Ifc4x3_rc1::IfcMaterialConstituent::Fraction() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcMaterialConstituent::setFraction(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialConstituent::Category() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcMaterialConstituent::setCategory(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::vector<::Ifc4x3_rc1::IfcMaterialConstituentSet> Ifc4x3_rc1::IfcMaterialConstituent::ToMaterialConstituentSet() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[648], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialConstituent::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[647]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialConstituent::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[647]); } // Ifc4x3_rc1::IfcMaterialConstituent::IfcMaterialConstituent(const std::weak_ptr& e) : IfcMaterialDefinition(e) { } // Ifc4x3_rc1::IfcMaterialConstituent::IfcMaterialConstituent(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcMaterial v3_Material, std::optional< double > v4_Fraction, std::optional< std::string > v5_Category) : IfcMaterialDefinition(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_Material)); if (v4_Fraction) {set_attribute_value(3, (*v4_Fraction)); } if (v5_Category) {set_attribute_value(4, (*v5_Category)); }; populate_derived(); } // Function implementations for IfcMaterialConstituentSet std::optional< std::string > Ifc4x3_rc1::IfcMaterialConstituentSet::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcMaterialConstituentSet::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialConstituentSet::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcMaterialConstituentSet::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcMaterialConstituent > > Ifc4x3_rc1::IfcMaterialConstituentSet::MaterialConstituents() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcMaterialConstituent>(es); } void Ifc4x3_rc1::IfcMaterialConstituentSet::setMaterialConstituents(const std::optional< std::vector< ::Ifc4x3_rc1::IfcMaterialConstituent > >& v) { if (v) {set_attribute_value(2, cast_vector(*v));} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialConstituentSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[648]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialConstituentSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[648]); } // Ifc4x3_rc1::IfcMaterialConstituentSet::IfcMaterialConstituentSet(const std::weak_ptr& e) : IfcMaterialDefinition(e) { } // Ifc4x3_rc1::IfcMaterialConstituentSet::IfcMaterialConstituentSet(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::optional< std::vector< ::Ifc4x3_rc1::IfcMaterialConstituent > > v3_MaterialConstituents) : IfcMaterialDefinition(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_MaterialConstituents) {set_attribute_value(2, (*v3_MaterialConstituents)->generalize()); }; populate_derived(); } // Function implementations for IfcMaterialDefinition std::vector<::Ifc4x3_rc1::IfcRelAssociatesMaterial> Ifc4x3_rc1::IfcMaterialDefinition::AssociatedTo() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[925], 5)); } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcMaterialDefinition::HasExternalReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } std::vector<::Ifc4x3_rc1::IfcMaterialProperties> Ifc4x3_rc1::IfcMaterialDefinition::HasProperties() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[661], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialDefinition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[649]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialDefinition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[649]); } // Ifc4x3_rc1::IfcMaterialDefinition::IfcMaterialDefinition(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcMaterialDefinition::IfcMaterialDefinition() : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcMaterialDefinitionRepresentation ::Ifc4x3_rc1::IfcMaterial Ifc4x3_rc1::IfcMaterialDefinitionRepresentation::RepresentedMaterial() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcMaterial>(); } void Ifc4x3_rc1::IfcMaterialDefinitionRepresentation::setRepresentedMaterial(const ::Ifc4x3_rc1::IfcMaterial& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialDefinitionRepresentation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[650]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialDefinitionRepresentation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[650]); } // Ifc4x3_rc1::IfcMaterialDefinitionRepresentation::IfcMaterialDefinitionRepresentation(const std::weak_ptr& e) : IfcProductRepresentation(e) { } // Ifc4x3_rc1::IfcMaterialDefinitionRepresentation::IfcMaterialDefinitionRepresentation(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcRepresentation > v3_Representations, ::Ifc4x3_rc1::IfcMaterial v4_RepresentedMaterial) : IfcProductRepresentation(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_Representations)->generalize());set_attribute_value(3, (v4_RepresentedMaterial));; populate_derived(); } // Function implementations for IfcMaterialLayer ::Ifc4x3_rc1::IfcMaterial Ifc4x3_rc1::IfcMaterialLayer::Material() const { if(get_attribute_value(0).isNull()) { return ::Ifc4x3_rc1::IfcMaterial{}; } return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcMaterial>(); } void Ifc4x3_rc1::IfcMaterialLayer::setMaterial(const ::Ifc4x3_rc1::IfcMaterial& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcMaterialLayer::LayerThickness() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcMaterialLayer::setLayerThickness(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< boost::logic::tribool > Ifc4x3_rc1::IfcMaterialLayer::IsVentilated() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } boost::logic::tribool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcMaterialLayer::setIsVentilated(const std::optional< boost::logic::tribool >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialLayer::Name() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcMaterialLayer::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialLayer::Description() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcMaterialLayer::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialLayer::Category() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcMaterialLayer::setCategory(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< int > Ifc4x3_rc1::IfcMaterialLayer::Priority() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } int v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcMaterialLayer::setPriority(const std::optional< int >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::vector<::Ifc4x3_rc1::IfcMaterialLayerSet> Ifc4x3_rc1::IfcMaterialLayer::ToMaterialLayerSet() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[652], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialLayer::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[651]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialLayer::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[651]); } // Ifc4x3_rc1::IfcMaterialLayer::IfcMaterialLayer(const std::weak_ptr& e) : IfcMaterialDefinition(e) { } // Ifc4x3_rc1::IfcMaterialLayer::IfcMaterialLayer(::Ifc4x3_rc1::IfcMaterial v1_Material, double v2_LayerThickness, std::optional< boost::logic::tribool > v3_IsVentilated, std::optional< std::string > v4_Name, std::optional< std::string > v5_Description, std::optional< std::string > v6_Category, std::optional< int > v7_Priority) : IfcMaterialDefinition(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Material) {set_attribute_value(0, (*v1_Material)); }set_attribute_value(1, (v2_LayerThickness)); if (v3_IsVentilated) {set_attribute_value(2, (*v3_IsVentilated)); } if (v4_Name) {set_attribute_value(3, (*v4_Name)); } if (v5_Description) {set_attribute_value(4, (*v5_Description)); } if (v6_Category) {set_attribute_value(5, (*v6_Category)); } if (v7_Priority) {set_attribute_value(6, (*v7_Priority)); }; populate_derived(); } // Function implementations for IfcMaterialLayerSet std::vector< ::Ifc4x3_rc1::IfcMaterialLayer > Ifc4x3_rc1::IfcMaterialLayerSet::MaterialLayers() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcMaterialLayer>(es); } void Ifc4x3_rc1::IfcMaterialLayerSet::setMaterialLayers(const std::vector< ::Ifc4x3_rc1::IfcMaterialLayer >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcMaterialLayerSet::LayerSetName() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcMaterialLayerSet::setLayerSetName(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialLayerSet::Description() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcMaterialLayerSet::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialLayerSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[652]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialLayerSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[652]); } // Ifc4x3_rc1::IfcMaterialLayerSet::IfcMaterialLayerSet(const std::weak_ptr& e) : IfcMaterialDefinition(e) { } // Ifc4x3_rc1::IfcMaterialLayerSet::IfcMaterialLayerSet(std::vector< ::Ifc4x3_rc1::IfcMaterialLayer > v1_MaterialLayers, std::optional< std::string > v2_LayerSetName, std::optional< std::string > v3_Description) : IfcMaterialDefinition(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_MaterialLayers)->generalize()); if (v2_LayerSetName) {set_attribute_value(1, (*v2_LayerSetName)); } if (v3_Description) {set_attribute_value(2, (*v3_Description)); }; populate_derived(); } // Function implementations for IfcMaterialLayerSetUsage ::Ifc4x3_rc1::IfcMaterialLayerSet Ifc4x3_rc1::IfcMaterialLayerSetUsage::ForLayerSet() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcMaterialLayerSet>(); } void Ifc4x3_rc1::IfcMaterialLayerSetUsage::setForLayerSet(const ::Ifc4x3_rc1::IfcMaterialLayerSet& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value Ifc4x3_rc1::IfcMaterialLayerSetUsage::LayerSetDirection() const { return ::Ifc4x3_rc1::IfcLayerSetDirectionEnum::FromString(get_attribute_value(1)); } void Ifc4x3_rc1::IfcMaterialLayerSetUsage::setLayerSetDirection(const ::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value& v) { set_attribute_value(1, EnumerationReference(&::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcDirectionSenseEnum::Value Ifc4x3_rc1::IfcMaterialLayerSetUsage::DirectionSense() const { return ::Ifc4x3_rc1::IfcDirectionSenseEnum::FromString(get_attribute_value(2)); } void Ifc4x3_rc1::IfcMaterialLayerSetUsage::setDirectionSense(const ::Ifc4x3_rc1::IfcDirectionSenseEnum::Value& v) { set_attribute_value(2, EnumerationReference(&::Ifc4x3_rc1::IfcDirectionSenseEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcMaterialLayerSetUsage::OffsetFromReferenceLine() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcMaterialLayerSetUsage::setOffsetFromReferenceLine(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< double > Ifc4x3_rc1::IfcMaterialLayerSetUsage::ReferenceExtent() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcMaterialLayerSetUsage::setReferenceExtent(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialLayerSetUsage::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[653]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialLayerSetUsage::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[653]); } // Ifc4x3_rc1::IfcMaterialLayerSetUsage::IfcMaterialLayerSetUsage(const std::weak_ptr& e) : IfcMaterialUsageDefinition(e) { } // Ifc4x3_rc1::IfcMaterialLayerSetUsage::IfcMaterialLayerSetUsage(::Ifc4x3_rc1::IfcMaterialLayerSet v1_ForLayerSet, ::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value v2_LayerSetDirection, ::Ifc4x3_rc1::IfcDirectionSenseEnum::Value v3_DirectionSense, double v4_OffsetFromReferenceLine, std::optional< double > v5_ReferenceExtent) : IfcMaterialUsageDefinition(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_ForLayerSet));set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Class(),(size_t)v2_LayerSetDirection)));set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcDirectionSenseEnum::Class(),(size_t)v3_DirectionSense)));set_attribute_value(3, (v4_OffsetFromReferenceLine)); if (v5_ReferenceExtent) {set_attribute_value(4, (*v5_ReferenceExtent)); }; populate_derived(); } // Function implementations for IfcMaterialLayerWithOffsets ::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value Ifc4x3_rc1::IfcMaterialLayerWithOffsets::OffsetDirection() const { return ::Ifc4x3_rc1::IfcLayerSetDirectionEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcMaterialLayerWithOffsets::setOffsetDirection(const ::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } std::vector< double > /*[1:2]*/ Ifc4x3_rc1::IfcMaterialLayerWithOffsets::OffsetValues() const { std::vector< double > /*[1:2]*/ v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcMaterialLayerWithOffsets::setOffsetValues(const std::vector< double > /*[1:2]*/& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialLayerWithOffsets::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[654]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialLayerWithOffsets::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[654]); } // Ifc4x3_rc1::IfcMaterialLayerWithOffsets::IfcMaterialLayerWithOffsets(const std::weak_ptr& e) : IfcMaterialLayer(e) { } // Ifc4x3_rc1::IfcMaterialLayerWithOffsets::IfcMaterialLayerWithOffsets(::Ifc4x3_rc1::IfcMaterial v1_Material, double v2_LayerThickness, std::optional< boost::logic::tribool > v3_IsVentilated, std::optional< std::string > v4_Name, std::optional< std::string > v5_Description, std::optional< std::string > v6_Category, std::optional< int > v7_Priority, ::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Value v8_OffsetDirection, std::vector< double > /*[1:2]*/ v9_OffsetValues) : IfcMaterialLayer(const std::weak_ptr&(in_memory_attribute_storage(9))) { if (v1_Material) {set_attribute_value(0, (*v1_Material)); }set_attribute_value(1, (v2_LayerThickness)); if (v3_IsVentilated) {set_attribute_value(2, (*v3_IsVentilated)); } if (v4_Name) {set_attribute_value(3, (*v4_Name)); } if (v5_Description) {set_attribute_value(4, (*v5_Description)); } if (v6_Category) {set_attribute_value(5, (*v6_Category)); } if (v7_Priority) {set_attribute_value(6, (*v7_Priority)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcLayerSetDirectionEnum::Class(),(size_t)v8_OffsetDirection)));set_attribute_value(8, (v9_OffsetValues));; populate_derived(); } // Function implementations for IfcMaterialList std::vector< ::Ifc4x3_rc1::IfcMaterial > Ifc4x3_rc1::IfcMaterialList::Materials() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcMaterial>(es); } void Ifc4x3_rc1::IfcMaterialList::setMaterials(const std::vector< ::Ifc4x3_rc1::IfcMaterial >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialList::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[655]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialList::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[655]); } // Ifc4x3_rc1::IfcMaterialList::IfcMaterialList(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcMaterialList::IfcMaterialList(std::vector< ::Ifc4x3_rc1::IfcMaterial > v1_Materials) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Materials)->generalize());; populate_derived(); } // Function implementations for IfcMaterialProfile std::optional< std::string > Ifc4x3_rc1::IfcMaterialProfile::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcMaterialProfile::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialProfile::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcMaterialProfile::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } ::Ifc4x3_rc1::IfcMaterial Ifc4x3_rc1::IfcMaterialProfile::Material() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcMaterial{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcMaterial>(); } void Ifc4x3_rc1::IfcMaterialProfile::setMaterial(const ::Ifc4x3_rc1::IfcMaterial& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcMaterialProfile::Profile() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcMaterialProfile::setProfile(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< int > Ifc4x3_rc1::IfcMaterialProfile::Priority() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } int v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcMaterialProfile::setPriority(const std::optional< int >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialProfile::Category() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcMaterialProfile::setCategory(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::vector<::Ifc4x3_rc1::IfcMaterialProfileSet> Ifc4x3_rc1::IfcMaterialProfile::ToMaterialProfileSet() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[657], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfile::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[656]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfile::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[656]); } // Ifc4x3_rc1::IfcMaterialProfile::IfcMaterialProfile(const std::weak_ptr& e) : IfcMaterialDefinition(e) { } // Ifc4x3_rc1::IfcMaterialProfile::IfcMaterialProfile(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcMaterial v3_Material, ::Ifc4x3_rc1::IfcProfileDef v4_Profile, std::optional< int > v5_Priority, std::optional< std::string > v6_Category) : IfcMaterialDefinition(const std::weak_ptr&(in_memory_attribute_storage(6))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Material) {set_attribute_value(2, (*v3_Material)); }set_attribute_value(3, (v4_Profile)); if (v5_Priority) {set_attribute_value(4, (*v5_Priority)); } if (v6_Category) {set_attribute_value(5, (*v6_Category)); }; populate_derived(); } // Function implementations for IfcMaterialProfileSet std::optional< std::string > Ifc4x3_rc1::IfcMaterialProfileSet::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcMaterialProfileSet::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcMaterialProfileSet::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcMaterialProfileSet::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector< ::Ifc4x3_rc1::IfcMaterialProfile > Ifc4x3_rc1::IfcMaterialProfileSet::MaterialProfiles() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcMaterialProfile>(es); } void Ifc4x3_rc1::IfcMaterialProfileSet::setMaterialProfiles(const std::vector< ::Ifc4x3_rc1::IfcMaterialProfile >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcCompositeProfileDef Ifc4x3_rc1::IfcMaterialProfileSet::CompositeProfile() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcCompositeProfileDef{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcCompositeProfileDef>(); } void Ifc4x3_rc1::IfcMaterialProfileSet::setCompositeProfile(const ::Ifc4x3_rc1::IfcCompositeProfileDef& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfileSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[657]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfileSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[657]); } // Ifc4x3_rc1::IfcMaterialProfileSet::IfcMaterialProfileSet(const std::weak_ptr& e) : IfcMaterialDefinition(e) { } // Ifc4x3_rc1::IfcMaterialProfileSet::IfcMaterialProfileSet(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcMaterialProfile > v3_MaterialProfiles, ::Ifc4x3_rc1::IfcCompositeProfileDef v4_CompositeProfile) : IfcMaterialDefinition(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_MaterialProfiles)->generalize()); if (v4_CompositeProfile) {set_attribute_value(3, (*v4_CompositeProfile)); }; populate_derived(); } // Function implementations for IfcMaterialProfileSetUsage ::Ifc4x3_rc1::IfcMaterialProfileSet Ifc4x3_rc1::IfcMaterialProfileSetUsage::ForProfileSet() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcMaterialProfileSet>(); } void Ifc4x3_rc1::IfcMaterialProfileSetUsage::setForProfileSet(const ::Ifc4x3_rc1::IfcMaterialProfileSet& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< int > Ifc4x3_rc1::IfcMaterialProfileSetUsage::CardinalPoint() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } int v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcMaterialProfileSetUsage::setCardinalPoint(const std::optional< int >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcMaterialProfileSetUsage::ReferenceExtent() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcMaterialProfileSetUsage::setReferenceExtent(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfileSetUsage::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[658]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfileSetUsage::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[658]); } // Ifc4x3_rc1::IfcMaterialProfileSetUsage::IfcMaterialProfileSetUsage(const std::weak_ptr& e) : IfcMaterialUsageDefinition(e) { } // Ifc4x3_rc1::IfcMaterialProfileSetUsage::IfcMaterialProfileSetUsage(::Ifc4x3_rc1::IfcMaterialProfileSet v1_ForProfileSet, std::optional< int > v2_CardinalPoint, std::optional< double > v3_ReferenceExtent) : IfcMaterialUsageDefinition(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_ForProfileSet)); if (v2_CardinalPoint) {set_attribute_value(1, (*v2_CardinalPoint)); } if (v3_ReferenceExtent) {set_attribute_value(2, (*v3_ReferenceExtent)); }; populate_derived(); } // Function implementations for IfcMaterialProfileSetUsageTapering ::Ifc4x3_rc1::IfcMaterialProfileSet Ifc4x3_rc1::IfcMaterialProfileSetUsageTapering::ForProfileEndSet() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcMaterialProfileSet>(); } void Ifc4x3_rc1::IfcMaterialProfileSetUsageTapering::setForProfileEndSet(const ::Ifc4x3_rc1::IfcMaterialProfileSet& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< int > Ifc4x3_rc1::IfcMaterialProfileSetUsageTapering::CardinalEndPoint() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } int v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcMaterialProfileSetUsageTapering::setCardinalEndPoint(const std::optional< int >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfileSetUsageTapering::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[659]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfileSetUsageTapering::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[659]); } // Ifc4x3_rc1::IfcMaterialProfileSetUsageTapering::IfcMaterialProfileSetUsageTapering(const std::weak_ptr& e) : IfcMaterialProfileSetUsage(e) { } // Ifc4x3_rc1::IfcMaterialProfileSetUsageTapering::IfcMaterialProfileSetUsageTapering(::Ifc4x3_rc1::IfcMaterialProfileSet v1_ForProfileSet, std::optional< int > v2_CardinalPoint, std::optional< double > v3_ReferenceExtent, ::Ifc4x3_rc1::IfcMaterialProfileSet v4_ForProfileEndSet, std::optional< int > v5_CardinalEndPoint) : IfcMaterialProfileSetUsage(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_ForProfileSet)); if (v2_CardinalPoint) {set_attribute_value(1, (*v2_CardinalPoint)); } if (v3_ReferenceExtent) {set_attribute_value(2, (*v3_ReferenceExtent)); }set_attribute_value(3, (v4_ForProfileEndSet)); if (v5_CardinalEndPoint) {set_attribute_value(4, (*v5_CardinalEndPoint)); }; populate_derived(); } // Function implementations for IfcMaterialProfileWithOffsets std::vector< double > /*[1:2]*/ Ifc4x3_rc1::IfcMaterialProfileWithOffsets::OffsetValues() const { std::vector< double > /*[1:2]*/ v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcMaterialProfileWithOffsets::setOffsetValues(const std::vector< double > /*[1:2]*/& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfileWithOffsets::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[660]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProfileWithOffsets::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[660]); } // Ifc4x3_rc1::IfcMaterialProfileWithOffsets::IfcMaterialProfileWithOffsets(const std::weak_ptr& e) : IfcMaterialProfile(e) { } // Ifc4x3_rc1::IfcMaterialProfileWithOffsets::IfcMaterialProfileWithOffsets(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcMaterial v3_Material, ::Ifc4x3_rc1::IfcProfileDef v4_Profile, std::optional< int > v5_Priority, std::optional< std::string > v6_Category, std::vector< double > /*[1:2]*/ v7_OffsetValues) : IfcMaterialProfile(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Material) {set_attribute_value(2, (*v3_Material)); }set_attribute_value(3, (v4_Profile)); if (v5_Priority) {set_attribute_value(4, (*v5_Priority)); } if (v6_Category) {set_attribute_value(5, (*v6_Category)); }set_attribute_value(6, (v7_OffsetValues));; populate_derived(); } // Function implementations for IfcMaterialProperties ::Ifc4x3_rc1::IfcMaterialDefinition Ifc4x3_rc1::IfcMaterialProperties::Material() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcMaterialDefinition>(); } void Ifc4x3_rc1::IfcMaterialProperties::setMaterial(const ::Ifc4x3_rc1::IfcMaterialDefinition& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[661]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[661]); } // Ifc4x3_rc1::IfcMaterialProperties::IfcMaterialProperties(const std::weak_ptr& e) : IfcExtendedProperties(e) { } // Ifc4x3_rc1::IfcMaterialProperties::IfcMaterialProperties(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcProperty > v3_Properties, ::Ifc4x3_rc1::IfcMaterialDefinition v4_Material) : IfcExtendedProperties(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_Properties)->generalize());set_attribute_value(3, (v4_Material));; populate_derived(); } // Function implementations for IfcMaterialRelationship ::Ifc4x3_rc1::IfcMaterial Ifc4x3_rc1::IfcMaterialRelationship::RelatingMaterial() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcMaterial>(); } void Ifc4x3_rc1::IfcMaterialRelationship::setRelatingMaterial(const ::Ifc4x3_rc1::IfcMaterial& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< ::Ifc4x3_rc1::IfcMaterial > Ifc4x3_rc1::IfcMaterialRelationship::RelatedMaterials() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcMaterial>(es); } void Ifc4x3_rc1::IfcMaterialRelationship::setRelatedMaterials(const std::vector< ::Ifc4x3_rc1::IfcMaterial >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcMaterialRelationship::Expression() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcMaterialRelationship::setExpression(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[662]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[662]); } // Ifc4x3_rc1::IfcMaterialRelationship::IfcMaterialRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcMaterialRelationship::IfcMaterialRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcMaterial v3_RelatingMaterial, std::vector< ::Ifc4x3_rc1::IfcMaterial > v4_RelatedMaterials, std::optional< std::string > v5_Expression) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_RelatingMaterial));set_attribute_value(3, (v4_RelatedMaterials)->generalize()); if (v5_Expression) {set_attribute_value(4, (*v5_Expression)); }; populate_derived(); } // Function implementations for IfcMaterialUsageDefinition std::vector<::Ifc4x3_rc1::IfcRelAssociatesMaterial> Ifc4x3_rc1::IfcMaterialUsageDefinition::AssociatedTo() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[925], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcMaterialUsageDefinition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[664]); } const IfcParse::entity& Ifc4x3_rc1::IfcMaterialUsageDefinition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[664]); } // Ifc4x3_rc1::IfcMaterialUsageDefinition::IfcMaterialUsageDefinition(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcMaterialUsageDefinition::IfcMaterialUsageDefinition() : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcMeasureWithUnit ::Ifc4x3_rc1::IfcValue Ifc4x3_rc1::IfcMeasureWithUnit::ValueComponent() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcValue>(); } void Ifc4x3_rc1::IfcMeasureWithUnit::setValueComponent(const ::Ifc4x3_rc1::IfcValue& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcMeasureWithUnit::UnitComponent() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcMeasureWithUnit::setUnitComponent(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcMeasureWithUnit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[666]); } const IfcParse::entity& Ifc4x3_rc1::IfcMeasureWithUnit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[666]); } // Ifc4x3_rc1::IfcMeasureWithUnit::IfcMeasureWithUnit(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcMeasureWithUnit::IfcMeasureWithUnit(::Ifc4x3_rc1::IfcValue v1_ValueComponent, ::Ifc4x3_rc1::IfcUnit v2_UnitComponent) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_ValueComponent));set_attribute_value(1, (v2_UnitComponent));; populate_derived(); } // Function implementations for IfcMechanicalFastener std::optional< double > Ifc4x3_rc1::IfcMechanicalFastener::NominalDiameter() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcMechanicalFastener::setNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< double > Ifc4x3_rc1::IfcMechanicalFastener::NominalLength() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcMechanicalFastener::setNominalLength(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< ::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value > Ifc4x3_rc1::IfcMechanicalFastener::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcMechanicalFastener::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMechanicalFastener::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[667]); } const IfcParse::entity& Ifc4x3_rc1::IfcMechanicalFastener::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[667]); } // Ifc4x3_rc1::IfcMechanicalFastener::IfcMechanicalFastener(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcMechanicalFastener::IfcMechanicalFastener(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< double > v9_NominalDiameter, std::optional< double > v10_NominalLength, std::optional< ::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value > v11_PredefinedType) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_NominalDiameter) {set_attribute_value(8, (*v9_NominalDiameter)); } if (v10_NominalLength) {set_attribute_value(9, (*v10_NominalLength)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcMechanicalFastenerType ::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value Ifc4x3_rc1::IfcMechanicalFastenerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcMechanicalFastenerType::setPredefinedType(const ::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< double > Ifc4x3_rc1::IfcMechanicalFastenerType::NominalDiameter() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcMechanicalFastenerType::setNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcMechanicalFastenerType::NominalLength() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcMechanicalFastenerType::setNominalLength(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMechanicalFastenerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[668]); } const IfcParse::entity& Ifc4x3_rc1::IfcMechanicalFastenerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[668]); } // Ifc4x3_rc1::IfcMechanicalFastenerType::IfcMechanicalFastenerType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcMechanicalFastenerType::IfcMechanicalFastenerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Value v10_PredefinedType, std::optional< double > v11_NominalDiameter, std::optional< double > v12_NominalLength) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::Class(),(size_t)v10_PredefinedType))); if (v11_NominalDiameter) {set_attribute_value(10, (*v11_NominalDiameter)); } if (v12_NominalLength) {set_attribute_value(11, (*v12_NominalLength)); }; populate_derived(); } // Function implementations for IfcMedicalDevice std::optional< ::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value > Ifc4x3_rc1::IfcMedicalDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcMedicalDevice::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMedicalDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[670]); } const IfcParse::entity& Ifc4x3_rc1::IfcMedicalDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[670]); } // Ifc4x3_rc1::IfcMedicalDevice::IfcMedicalDevice(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcMedicalDevice::IfcMedicalDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcMedicalDeviceType ::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value Ifc4x3_rc1::IfcMedicalDeviceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcMedicalDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcMedicalDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[671]); } const IfcParse::entity& Ifc4x3_rc1::IfcMedicalDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[671]); } // Ifc4x3_rc1::IfcMedicalDeviceType::IfcMedicalDeviceType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcMedicalDeviceType::IfcMedicalDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcMember std::optional< ::Ifc4x3_rc1::IfcMemberTypeEnum::Value > Ifc4x3_rc1::IfcMember::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcMemberTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcMember::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcMemberTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcMemberTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMember::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[673]); } const IfcParse::entity& Ifc4x3_rc1::IfcMember::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[673]); } // Ifc4x3_rc1::IfcMember::IfcMember(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcMember::IfcMember(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcMemberTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcMemberTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcMemberStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcMemberStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[674]); } const IfcParse::entity& Ifc4x3_rc1::IfcMemberStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[674]); } // Ifc4x3_rc1::IfcMemberStandardCase::IfcMemberStandardCase(const std::weak_ptr& e) : IfcMember(e) { } // Ifc4x3_rc1::IfcMemberStandardCase::IfcMemberStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcMemberTypeEnum::Value > v9_PredefinedType) : IfcMember(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcMemberTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcMemberType ::Ifc4x3_rc1::IfcMemberTypeEnum::Value Ifc4x3_rc1::IfcMemberType::PredefinedType() const { return ::Ifc4x3_rc1::IfcMemberTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcMemberType::setPredefinedType(const ::Ifc4x3_rc1::IfcMemberTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcMemberTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcMemberType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[675]); } const IfcParse::entity& Ifc4x3_rc1::IfcMemberType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[675]); } // Ifc4x3_rc1::IfcMemberType::IfcMemberType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcMemberType::IfcMemberType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcMemberTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcMemberTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcMetric ::Ifc4x3_rc1::IfcBenchmarkEnum::Value Ifc4x3_rc1::IfcMetric::Benchmark() const { return ::Ifc4x3_rc1::IfcBenchmarkEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcMetric::setBenchmark(const ::Ifc4x3_rc1::IfcBenchmarkEnum::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcBenchmarkEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } std::optional< std::string > Ifc4x3_rc1::IfcMetric::ValueSource() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcMetric::setValueSource(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } ::Ifc4x3_rc1::IfcMetricValueSelect Ifc4x3_rc1::IfcMetric::DataValue() const { if(get_attribute_value(9).isNull()) { return ::Ifc4x3_rc1::IfcMetricValueSelect{}; } return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcMetricValueSelect>(); } void Ifc4x3_rc1::IfcMetric::setDataValue(const ::Ifc4x3_rc1::IfcMetricValueSelect& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } ::Ifc4x3_rc1::IfcReference Ifc4x3_rc1::IfcMetric::ReferencePath() const { if(get_attribute_value(10).isNull()) { return ::Ifc4x3_rc1::IfcReference{}; } return ((express::Base)(get_attribute_value(10))).as<::Ifc4x3_rc1::IfcReference>(); } void Ifc4x3_rc1::IfcMetric::setReferencePath(const ::Ifc4x3_rc1::IfcReference& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } // const IfcParse::entity& Ifc4x3_rc1::IfcMetric::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[677]); } const IfcParse::entity& Ifc4x3_rc1::IfcMetric::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[677]); } // Ifc4x3_rc1::IfcMetric::IfcMetric(const std::weak_ptr& e) : IfcConstraint(e) { } // Ifc4x3_rc1::IfcMetric::IfcMetric(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcConstraintEnum::Value v3_ConstraintGrade, std::optional< std::string > v4_ConstraintSource, ::Ifc4x3_rc1::IfcActorSelect v5_CreatingActor, std::optional< std::string > v6_CreationTime, std::optional< std::string > v7_UserDefinedGrade, ::Ifc4x3_rc1::IfcBenchmarkEnum::Value v8_Benchmark, std::optional< std::string > v9_ValueSource, ::Ifc4x3_rc1::IfcMetricValueSelect v10_DataValue, ::Ifc4x3_rc1::IfcReference v11_ReferencePath) : IfcConstraint(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcConstraintEnum::Class(),(size_t)v3_ConstraintGrade))); if (v4_ConstraintSource) {set_attribute_value(3, (*v4_ConstraintSource)); } if (v5_CreatingActor) {set_attribute_value(4, (*v5_CreatingActor)); } if (v6_CreationTime) {set_attribute_value(5, (*v6_CreationTime)); } if (v7_UserDefinedGrade) {set_attribute_value(6, (*v7_UserDefinedGrade)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcBenchmarkEnum::Class(),(size_t)v8_Benchmark))); if (v9_ValueSource) {set_attribute_value(8, (*v9_ValueSource)); } if (v10_DataValue) {set_attribute_value(9, (*v10_DataValue)); } if (v11_ReferencePath) {set_attribute_value(10, (*v11_ReferencePath)); }; populate_derived(); } // Function implementations for IfcMirroredProfileDef // const IfcParse::entity& Ifc4x3_rc1::IfcMirroredProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[679]); } const IfcParse::entity& Ifc4x3_rc1::IfcMirroredProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[679]); } // Ifc4x3_rc1::IfcMirroredProfileDef::IfcMirroredProfileDef(const std::weak_ptr& e) : IfcDerivedProfileDef(e) { } // Ifc4x3_rc1::IfcMirroredProfileDef::IfcMirroredProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcProfileDef v3_ParentProfile, std::optional< std::string > v5_Label) : IfcDerivedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }set_attribute_value(2, (v3_ParentProfile)); if (v5_Label) {set_attribute_value(4, (*v5_Label)); }; populate_derived(); } // Function implementations for IfcMobileTelecommunicationsAppliance std::optional< ::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value > Ifc4x3_rc1::IfcMobileTelecommunicationsAppliance::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcMobileTelecommunicationsAppliance::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMobileTelecommunicationsAppliance::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[680]); } const IfcParse::entity& Ifc4x3_rc1::IfcMobileTelecommunicationsAppliance::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[680]); } // Ifc4x3_rc1::IfcMobileTelecommunicationsAppliance::IfcMobileTelecommunicationsAppliance(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcMobileTelecommunicationsAppliance::IfcMobileTelecommunicationsAppliance(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcMobileTelecommunicationsApplianceType ::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceType::setPredefinedType(const ::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[681]); } const IfcParse::entity& Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[681]); } // Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceType::IfcMobileTelecommunicationsApplianceType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceType::IfcMobileTelecommunicationsApplianceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcMonetaryUnit std::string Ifc4x3_rc1::IfcMonetaryUnit::Currency() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcMonetaryUnit::setCurrency(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcMonetaryUnit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[694]); } const IfcParse::entity& Ifc4x3_rc1::IfcMonetaryUnit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[694]); } // Ifc4x3_rc1::IfcMonetaryUnit::IfcMonetaryUnit(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcMonetaryUnit::IfcMonetaryUnit(std::string v1_Currency) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Currency));; populate_derived(); } // Function implementations for IfcMooringDevice std::optional< ::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value > Ifc4x3_rc1::IfcMooringDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcMooringDevice::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMooringDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[696]); } const IfcParse::entity& Ifc4x3_rc1::IfcMooringDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[696]); } // Ifc4x3_rc1::IfcMooringDevice::IfcMooringDevice(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcMooringDevice::IfcMooringDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcMooringDeviceType ::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value Ifc4x3_rc1::IfcMooringDeviceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcMooringDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcMooringDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[697]); } const IfcParse::entity& Ifc4x3_rc1::IfcMooringDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[697]); } // Ifc4x3_rc1::IfcMooringDeviceType::IfcMooringDeviceType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcMooringDeviceType::IfcMooringDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcMooringDeviceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcMotorConnection std::optional< ::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value > Ifc4x3_rc1::IfcMotorConnection::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcMotorConnection::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcMotorConnection::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[699]); } const IfcParse::entity& Ifc4x3_rc1::IfcMotorConnection::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[699]); } // Ifc4x3_rc1::IfcMotorConnection::IfcMotorConnection(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcMotorConnection::IfcMotorConnection(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcMotorConnectionType ::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value Ifc4x3_rc1::IfcMotorConnectionType::PredefinedType() const { return ::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcMotorConnectionType::setPredefinedType(const ::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcMotorConnectionType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[700]); } const IfcParse::entity& Ifc4x3_rc1::IfcMotorConnectionType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[700]); } // Ifc4x3_rc1::IfcMotorConnectionType::IfcMotorConnectionType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcMotorConnectionType::IfcMotorConnectionType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcMotorConnectionTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcNamedUnit ::Ifc4x3_rc1::IfcDimensionalExponents Ifc4x3_rc1::IfcNamedUnit::Dimensions() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcDimensionalExponents>(); } void Ifc4x3_rc1::IfcNamedUnit::setDimensions(const ::Ifc4x3_rc1::IfcDimensionalExponents& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcUnitEnum::Value Ifc4x3_rc1::IfcNamedUnit::UnitType() const { return ::Ifc4x3_rc1::IfcUnitEnum::FromString(get_attribute_value(1)); } void Ifc4x3_rc1::IfcNamedUnit::setUnitType(const ::Ifc4x3_rc1::IfcUnitEnum::Value& v) { set_attribute_value(1, EnumerationReference(&::Ifc4x3_rc1::IfcUnitEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcNamedUnit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[702]); } const IfcParse::entity& Ifc4x3_rc1::IfcNamedUnit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[702]); } // Ifc4x3_rc1::IfcNamedUnit::IfcNamedUnit(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcNamedUnit::IfcNamedUnit(::Ifc4x3_rc1::IfcDimensionalExponents v1_Dimensions, ::Ifc4x3_rc1::IfcUnitEnum::Value v2_UnitType) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Dimensions));set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitEnum::Class(),(size_t)v2_UnitType)));; populate_derived(); } // Function implementations for IfcNavigationElement std::optional< ::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value > Ifc4x3_rc1::IfcNavigationElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcNavigationElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcNavigationElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcNavigationElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[703]); } const IfcParse::entity& Ifc4x3_rc1::IfcNavigationElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[703]); } // Ifc4x3_rc1::IfcNavigationElement::IfcNavigationElement(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcNavigationElement::IfcNavigationElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcNavigationElementType ::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value Ifc4x3_rc1::IfcNavigationElementType::PredefinedType() const { return ::Ifc4x3_rc1::IfcNavigationElementTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcNavigationElementType::setPredefinedType(const ::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcNavigationElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[704]); } const IfcParse::entity& Ifc4x3_rc1::IfcNavigationElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[704]); } // Ifc4x3_rc1::IfcNavigationElementType::IfcNavigationElementType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcNavigationElementType::IfcNavigationElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcNavigationElementTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcObject std::optional< std::string > Ifc4x3_rc1::IfcObject::ObjectType() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcObject::setObjectType(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::vector<::Ifc4x3_rc1::IfcRelDefinesByObject> Ifc4x3_rc1::IfcObject::IsDeclaredBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[943], 4)); } std::vector<::Ifc4x3_rc1::IfcRelDefinesByObject> Ifc4x3_rc1::IfcObject::Declares() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[943], 5)); } std::vector<::Ifc4x3_rc1::IfcRelDefinesByType> Ifc4x3_rc1::IfcObject::IsTypedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[946], 4)); } std::vector<::Ifc4x3_rc1::IfcRelDefinesByProperties> Ifc4x3_rc1::IfcObject::IsDefinedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[944], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcObject::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[710]); } const IfcParse::entity& Ifc4x3_rc1::IfcObject::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[710]); } // Ifc4x3_rc1::IfcObject::IfcObject(const std::weak_ptr& e) : IfcObjectDefinition(e) { } // Ifc4x3_rc1::IfcObject::IfcObject(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType) : IfcObjectDefinition(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }; populate_derived(); } // Function implementations for IfcObjectDefinition std::vector<::Ifc4x3_rc1::IfcRelAssigns> Ifc4x3_rc1::IfcObjectDefinition::HasAssignments() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[911], 4)); } std::vector<::Ifc4x3_rc1::IfcRelNests> Ifc4x3_rc1::IfcObjectDefinition::Nests() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[950], 5)); } std::vector<::Ifc4x3_rc1::IfcRelNests> Ifc4x3_rc1::IfcObjectDefinition::IsNestedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[950], 4)); } std::vector<::Ifc4x3_rc1::IfcRelDeclares> Ifc4x3_rc1::IfcObjectDefinition::HasContext() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[940], 5)); } std::vector<::Ifc4x3_rc1::IfcRelAggregates> Ifc4x3_rc1::IfcObjectDefinition::IsDecomposedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[910], 4)); } std::vector<::Ifc4x3_rc1::IfcRelAggregates> Ifc4x3_rc1::IfcObjectDefinition::Decomposes() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[910], 5)); } std::vector<::Ifc4x3_rc1::IfcRelAssociates> Ifc4x3_rc1::IfcObjectDefinition::HasAssociations() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[919], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcObjectDefinition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[711]); } const IfcParse::entity& Ifc4x3_rc1::IfcObjectDefinition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[711]); } // Ifc4x3_rc1::IfcObjectDefinition::IfcObjectDefinition(const std::weak_ptr& e) : IfcRoot(e) { } // Ifc4x3_rc1::IfcObjectDefinition::IfcObjectDefinition(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcRoot(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcObjectPlacement ::Ifc4x3_rc1::IfcObjectPlacement Ifc4x3_rc1::IfcObjectPlacement::PlacementRelTo() const { if(get_attribute_value(0).isNull()) { return ::Ifc4x3_rc1::IfcObjectPlacement{}; } return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcObjectPlacement>(); } void Ifc4x3_rc1::IfcObjectPlacement::setPlacementRelTo(const ::Ifc4x3_rc1::IfcObjectPlacement& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector<::Ifc4x3_rc1::IfcProduct> Ifc4x3_rc1::IfcObjectPlacement::PlacesObject() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[814], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcObjectPlacement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[714]); } const IfcParse::entity& Ifc4x3_rc1::IfcObjectPlacement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[714]); } // Ifc4x3_rc1::IfcObjectPlacement::IfcObjectPlacement(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcObjectPlacement::IfcObjectPlacement(::Ifc4x3_rc1::IfcObjectPlacement v1_PlacementRelTo) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { if (v1_PlacementRelTo) {set_attribute_value(0, (*v1_PlacementRelTo)); }; populate_derived(); } // Function implementations for IfcObjective std::optional< std::vector< ::Ifc4x3_rc1::IfcConstraint > > Ifc4x3_rc1::IfcObjective::BenchmarkValues() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcConstraint>(es); } void Ifc4x3_rc1::IfcObjective::setBenchmarkValues(const std::optional< std::vector< ::Ifc4x3_rc1::IfcConstraint > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } std::optional< ::Ifc4x3_rc1::IfcLogicalOperatorEnum::Value > Ifc4x3_rc1::IfcObjective::LogicalAggregator() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcLogicalOperatorEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcObjective::setLogicalAggregator(const std::optional< ::Ifc4x3_rc1::IfcLogicalOperatorEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcLogicalOperatorEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } ::Ifc4x3_rc1::IfcObjectiveEnum::Value Ifc4x3_rc1::IfcObjective::ObjectiveQualifier() const { return ::Ifc4x3_rc1::IfcObjectiveEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcObjective::setObjectiveQualifier(const ::Ifc4x3_rc1::IfcObjectiveEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcObjectiveEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< std::string > Ifc4x3_rc1::IfcObjective::UserDefinedQualifier() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcObjective::setUserDefinedQualifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcObjective::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[712]); } const IfcParse::entity& Ifc4x3_rc1::IfcObjective::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[712]); } // Ifc4x3_rc1::IfcObjective::IfcObjective(const std::weak_ptr& e) : IfcConstraint(e) { } // Ifc4x3_rc1::IfcObjective::IfcObjective(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcConstraintEnum::Value v3_ConstraintGrade, std::optional< std::string > v4_ConstraintSource, ::Ifc4x3_rc1::IfcActorSelect v5_CreatingActor, std::optional< std::string > v6_CreationTime, std::optional< std::string > v7_UserDefinedGrade, std::optional< std::vector< ::Ifc4x3_rc1::IfcConstraint > > v8_BenchmarkValues, std::optional< ::Ifc4x3_rc1::IfcLogicalOperatorEnum::Value > v9_LogicalAggregator, ::Ifc4x3_rc1::IfcObjectiveEnum::Value v10_ObjectiveQualifier, std::optional< std::string > v11_UserDefinedQualifier) : IfcConstraint(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcConstraintEnum::Class(),(size_t)v3_ConstraintGrade))); if (v4_ConstraintSource) {set_attribute_value(3, (*v4_ConstraintSource)); } if (v5_CreatingActor) {set_attribute_value(4, (*v5_CreatingActor)); } if (v6_CreationTime) {set_attribute_value(5, (*v6_CreationTime)); } if (v7_UserDefinedGrade) {set_attribute_value(6, (*v7_UserDefinedGrade)); } if (v8_BenchmarkValues) {set_attribute_value(7, (*v8_BenchmarkValues)->generalize()); } if (v9_LogicalAggregator) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcLogicalOperatorEnum::Class(),(size_t)*v9_LogicalAggregator))); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectiveEnum::Class(),(size_t)v10_ObjectiveQualifier))); if (v11_UserDefinedQualifier) {set_attribute_value(10, (*v11_UserDefinedQualifier)); }; populate_derived(); } // Function implementations for IfcOccupant std::optional< ::Ifc4x3_rc1::IfcOccupantTypeEnum::Value > Ifc4x3_rc1::IfcOccupant::PredefinedType() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcOccupantTypeEnum::FromString(get_attribute_value(6)); } void Ifc4x3_rc1::IfcOccupant::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcOccupantTypeEnum::Value >& v) { if (v) {set_attribute_value(6, EnumerationReference(&::Ifc4x3_rc1::IfcOccupantTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcOccupant::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[717]); } const IfcParse::entity& Ifc4x3_rc1::IfcOccupant::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[717]); } // Ifc4x3_rc1::IfcOccupant::IfcOccupant(const std::weak_ptr& e) : IfcActor(e) { } // Ifc4x3_rc1::IfcOccupant::IfcOccupant(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcActorSelect v6_TheActor, std::optional< ::Ifc4x3_rc1::IfcOccupantTypeEnum::Value > v7_PredefinedType) : IfcActor(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }set_attribute_value(5, (v6_TheActor)); if (v7_PredefinedType) {set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcOccupantTypeEnum::Class(),(size_t)*v7_PredefinedType))); }; populate_derived(); } // Function implementations for IfcOffsetCurve ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcOffsetCurve::BasisCurve() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcOffsetCurve::setBasisCurve(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcOffsetCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[719]); } const IfcParse::entity& Ifc4x3_rc1::IfcOffsetCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[719]); } // Ifc4x3_rc1::IfcOffsetCurve::IfcOffsetCurve(const std::weak_ptr& e) : IfcCurve(e) { } // Ifc4x3_rc1::IfcOffsetCurve::IfcOffsetCurve(::Ifc4x3_rc1::IfcCurve v1_BasisCurve) : IfcCurve(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_BasisCurve));; populate_derived(); } // Function implementations for IfcOffsetCurve2D double Ifc4x3_rc1::IfcOffsetCurve2D::Distance() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcOffsetCurve2D::setDistance(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } boost::logic::tribool Ifc4x3_rc1::IfcOffsetCurve2D::SelfIntersect() const { boost::logic::tribool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcOffsetCurve2D::setSelfIntersect(const boost::logic::tribool& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcOffsetCurve2D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[720]); } const IfcParse::entity& Ifc4x3_rc1::IfcOffsetCurve2D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[720]); } // Ifc4x3_rc1::IfcOffsetCurve2D::IfcOffsetCurve2D(const std::weak_ptr& e) : IfcOffsetCurve(e) { } // Ifc4x3_rc1::IfcOffsetCurve2D::IfcOffsetCurve2D(::Ifc4x3_rc1::IfcCurve v1_BasisCurve, double v2_Distance, boost::logic::tribool v3_SelfIntersect) : IfcOffsetCurve(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_BasisCurve));set_attribute_value(1, (v2_Distance));set_attribute_value(2, (v3_SelfIntersect));; populate_derived(); } // Function implementations for IfcOffsetCurve3D double Ifc4x3_rc1::IfcOffsetCurve3D::Distance() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcOffsetCurve3D::setDistance(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } boost::logic::tribool Ifc4x3_rc1::IfcOffsetCurve3D::SelfIntersect() const { boost::logic::tribool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcOffsetCurve3D::setSelfIntersect(const boost::logic::tribool& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcOffsetCurve3D::RefDirection() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcOffsetCurve3D::setRefDirection(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcOffsetCurve3D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[721]); } const IfcParse::entity& Ifc4x3_rc1::IfcOffsetCurve3D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[721]); } // Ifc4x3_rc1::IfcOffsetCurve3D::IfcOffsetCurve3D(const std::weak_ptr& e) : IfcOffsetCurve(e) { } // Ifc4x3_rc1::IfcOffsetCurve3D::IfcOffsetCurve3D(::Ifc4x3_rc1::IfcCurve v1_BasisCurve, double v2_Distance, boost::logic::tribool v3_SelfIntersect, ::Ifc4x3_rc1::IfcDirection v4_RefDirection) : IfcOffsetCurve(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_BasisCurve));set_attribute_value(1, (v2_Distance));set_attribute_value(2, (v3_SelfIntersect));set_attribute_value(3, (v4_RefDirection));; populate_derived(); } // Function implementations for IfcOffsetCurveByDistances std::vector< ::Ifc4x3_rc1::IfcDistanceExpression > Ifc4x3_rc1::IfcOffsetCurveByDistances::OffsetValues() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcDistanceExpression>(es); } void Ifc4x3_rc1::IfcOffsetCurveByDistances::setOffsetValues(const std::vector< ::Ifc4x3_rc1::IfcDistanceExpression >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcOffsetCurveByDistances::Tag() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcOffsetCurveByDistances::setTag(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcOffsetCurveByDistances::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[722]); } const IfcParse::entity& Ifc4x3_rc1::IfcOffsetCurveByDistances::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[722]); } // Ifc4x3_rc1::IfcOffsetCurveByDistances::IfcOffsetCurveByDistances(const std::weak_ptr& e) : IfcOffsetCurve(e) { } // Ifc4x3_rc1::IfcOffsetCurveByDistances::IfcOffsetCurveByDistances(::Ifc4x3_rc1::IfcCurve v1_BasisCurve, std::vector< ::Ifc4x3_rc1::IfcDistanceExpression > v2_OffsetValues, std::optional< std::string > v3_Tag) : IfcOffsetCurve(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_BasisCurve));set_attribute_value(1, (v2_OffsetValues)->generalize()); if (v3_Tag) {set_attribute_value(2, (*v3_Tag)); }; populate_derived(); } // Function implementations for IfcOpenCrossProfileDef bool Ifc4x3_rc1::IfcOpenCrossProfileDef::HorizontalWidths() const { bool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcOpenCrossProfileDef::setHorizontalWidths(const bool& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< double > /*[1:?]*/ Ifc4x3_rc1::IfcOpenCrossProfileDef::Widths() const { std::vector< double > /*[1:?]*/ v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcOpenCrossProfileDef::setWidths(const std::vector< double > /*[1:?]*/& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::vector< double > /*[1:?]*/ Ifc4x3_rc1::IfcOpenCrossProfileDef::Slopes() const { std::vector< double > /*[1:?]*/ v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcOpenCrossProfileDef::setSlopes(const std::vector< double > /*[1:?]*/& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::optional< std::vector< std::string > /*[2:?]*/ > Ifc4x3_rc1::IfcOpenCrossProfileDef::Tags() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::vector< std::string > /*[2:?]*/ v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcOpenCrossProfileDef::setTags(const std::optional< std::vector< std::string > /*[2:?]*/ >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } // const IfcParse::entity& Ifc4x3_rc1::IfcOpenCrossProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[723]); } const IfcParse::entity& Ifc4x3_rc1::IfcOpenCrossProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[723]); } // Ifc4x3_rc1::IfcOpenCrossProfileDef::IfcOpenCrossProfileDef(const std::weak_ptr& e) : IfcProfileDef(e) { } // Ifc4x3_rc1::IfcOpenCrossProfileDef::IfcOpenCrossProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, bool v3_HorizontalWidths, std::vector< double > /*[1:?]*/ v4_Widths, std::vector< double > /*[1:?]*/ v5_Slopes, std::optional< std::vector< std::string > /*[2:?]*/ > v6_Tags) : IfcProfileDef(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }set_attribute_value(2, (v3_HorizontalWidths));set_attribute_value(3, (v4_Widths));set_attribute_value(4, (v5_Slopes)); if (v6_Tags) {set_attribute_value(5, (*v6_Tags)); }; populate_derived(); } // Function implementations for IfcOpenShell // const IfcParse::entity& Ifc4x3_rc1::IfcOpenShell::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[727]); } const IfcParse::entity& Ifc4x3_rc1::IfcOpenShell::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[727]); } // Ifc4x3_rc1::IfcOpenShell::IfcOpenShell(const std::weak_ptr& e) : IfcConnectedFaceSet(e) { } // Ifc4x3_rc1::IfcOpenShell::IfcOpenShell(std::vector< ::Ifc4x3_rc1::IfcFace > v1_CfsFaces) : IfcConnectedFaceSet(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_CfsFaces)->generalize());; populate_derived(); } // Function implementations for IfcOpeningElement std::optional< ::Ifc4x3_rc1::IfcOpeningElementTypeEnum::Value > Ifc4x3_rc1::IfcOpeningElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcOpeningElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcOpeningElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcOpeningElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcOpeningElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } std::vector<::Ifc4x3_rc1::IfcRelFillsElement> Ifc4x3_rc1::IfcOpeningElement::HasFillings() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[947], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcOpeningElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[724]); } const IfcParse::entity& Ifc4x3_rc1::IfcOpeningElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[724]); } // Ifc4x3_rc1::IfcOpeningElement::IfcOpeningElement(const std::weak_ptr& e) : IfcFeatureElementSubtraction(e) { } // Ifc4x3_rc1::IfcOpeningElement::IfcOpeningElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcOpeningElementTypeEnum::Value > v9_PredefinedType) : IfcFeatureElementSubtraction(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcOpeningElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcOpeningStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcOpeningStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[726]); } const IfcParse::entity& Ifc4x3_rc1::IfcOpeningStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[726]); } // Ifc4x3_rc1::IfcOpeningStandardCase::IfcOpeningStandardCase(const std::weak_ptr& e) : IfcOpeningElement(e) { } // Ifc4x3_rc1::IfcOpeningStandardCase::IfcOpeningStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcOpeningElementTypeEnum::Value > v9_PredefinedType) : IfcOpeningElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcOpeningElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcOrganization std::optional< std::string > Ifc4x3_rc1::IfcOrganization::Identification() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcOrganization::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::string Ifc4x3_rc1::IfcOrganization::Name() const { std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcOrganization::setName(const std::string& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcOrganization::Description() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcOrganization::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > > Ifc4x3_rc1::IfcOrganization::Roles() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcActorRole>(es); } void Ifc4x3_rc1::IfcOrganization::setRoles(const std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > >& v) { if (v) {set_attribute_value(3, cast_vector(*v));} else {unset_attribute_value(3);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcAddress > > Ifc4x3_rc1::IfcOrganization::Addresses() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcAddress>(es); } void Ifc4x3_rc1::IfcOrganization::setAddresses(const std::optional< std::vector< ::Ifc4x3_rc1::IfcAddress > >& v) { if (v) {set_attribute_value(4, cast_vector(*v));} else {unset_attribute_value(4);} } std::vector<::Ifc4x3_rc1::IfcOrganizationRelationship> Ifc4x3_rc1::IfcOrganization::IsRelatedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[729], 3)); } std::vector<::Ifc4x3_rc1::IfcOrganizationRelationship> Ifc4x3_rc1::IfcOrganization::Relates() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[729], 2)); } std::vector<::Ifc4x3_rc1::IfcPersonAndOrganization> Ifc4x3_rc1::IfcOrganization::Engages() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[750], 1)); } // const IfcParse::entity& Ifc4x3_rc1::IfcOrganization::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[728]); } const IfcParse::entity& Ifc4x3_rc1::IfcOrganization::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[728]); } // Ifc4x3_rc1::IfcOrganization::IfcOrganization(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcOrganization::IfcOrganization(std::optional< std::string > v1_Identification, std::string v2_Name, std::optional< std::string > v3_Description, std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > > v4_Roles, std::optional< std::vector< ::Ifc4x3_rc1::IfcAddress > > v5_Addresses) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Identification) {set_attribute_value(0, (*v1_Identification)); }set_attribute_value(1, (v2_Name)); if (v3_Description) {set_attribute_value(2, (*v3_Description)); } if (v4_Roles) {set_attribute_value(3, (*v4_Roles)->generalize()); } if (v5_Addresses) {set_attribute_value(4, (*v5_Addresses)->generalize()); }; populate_derived(); } // Function implementations for IfcOrganizationRelationship ::Ifc4x3_rc1::IfcOrganization Ifc4x3_rc1::IfcOrganizationRelationship::RelatingOrganization() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcOrganization>(); } void Ifc4x3_rc1::IfcOrganizationRelationship::setRelatingOrganization(const ::Ifc4x3_rc1::IfcOrganization& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< ::Ifc4x3_rc1::IfcOrganization > Ifc4x3_rc1::IfcOrganizationRelationship::RelatedOrganizations() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcOrganization>(es); } void Ifc4x3_rc1::IfcOrganizationRelationship::setRelatedOrganizations(const std::vector< ::Ifc4x3_rc1::IfcOrganization >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcOrganizationRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[729]); } const IfcParse::entity& Ifc4x3_rc1::IfcOrganizationRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[729]); } // Ifc4x3_rc1::IfcOrganizationRelationship::IfcOrganizationRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcOrganizationRelationship::IfcOrganizationRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcOrganization v3_RelatingOrganization, std::vector< ::Ifc4x3_rc1::IfcOrganization > v4_RelatedOrganizations) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_RelatingOrganization));set_attribute_value(3, (v4_RelatedOrganizations)->generalize());; populate_derived(); } // Function implementations for IfcOrientationExpression ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcOrientationExpression::LateralAxisDirection() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcOrientationExpression::setLateralAxisDirection(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcOrientationExpression::VerticalAxisDirection() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcOrientationExpression::setVerticalAxisDirection(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcOrientationExpression::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[730]); } const IfcParse::entity& Ifc4x3_rc1::IfcOrientationExpression::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[730]); } // Ifc4x3_rc1::IfcOrientationExpression::IfcOrientationExpression(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcOrientationExpression::IfcOrientationExpression(::Ifc4x3_rc1::IfcDirection v1_LateralAxisDirection, ::Ifc4x3_rc1::IfcDirection v2_VerticalAxisDirection) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_LateralAxisDirection));set_attribute_value(1, (v2_VerticalAxisDirection));; populate_derived(); } // Function implementations for IfcOrientedEdge ::Ifc4x3_rc1::IfcEdge Ifc4x3_rc1::IfcOrientedEdge::EdgeElement() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcEdge>(); } void Ifc4x3_rc1::IfcOrientedEdge::setEdgeElement(const ::Ifc4x3_rc1::IfcEdge& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } bool Ifc4x3_rc1::IfcOrientedEdge::Orientation() const { bool v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcOrientedEdge::setOrientation(const bool& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcOrientedEdge::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[731]); } const IfcParse::entity& Ifc4x3_rc1::IfcOrientedEdge::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[731]); } // Ifc4x3_rc1::IfcOrientedEdge::IfcOrientedEdge(const std::weak_ptr& e) : IfcEdge(e) { } // Ifc4x3_rc1::IfcOrientedEdge::IfcOrientedEdge(::Ifc4x3_rc1::IfcEdge v3_EdgeElement, bool v4_Orientation) : IfcEdge(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(2, (v3_EdgeElement));set_attribute_value(3, (v4_Orientation));; populate_derived(); } // Function implementations for IfcOuterBoundaryCurve // const IfcParse::entity& Ifc4x3_rc1::IfcOuterBoundaryCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[732]); } const IfcParse::entity& Ifc4x3_rc1::IfcOuterBoundaryCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[732]); } // Ifc4x3_rc1::IfcOuterBoundaryCurve::IfcOuterBoundaryCurve(const std::weak_ptr& e) : IfcBoundaryCurve(e) { } // Ifc4x3_rc1::IfcOuterBoundaryCurve::IfcOuterBoundaryCurve(std::vector< ::Ifc4x3_rc1::IfcCompositeCurveSegment > v1_Segments, boost::logic::tribool v2_SelfIntersect) : IfcBoundaryCurve(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Segments)->generalize());set_attribute_value(1, (v2_SelfIntersect));; populate_derived(); } // Function implementations for IfcOutlet std::optional< ::Ifc4x3_rc1::IfcOutletTypeEnum::Value > Ifc4x3_rc1::IfcOutlet::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcOutletTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcOutlet::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcOutletTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcOutletTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcOutlet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[733]); } const IfcParse::entity& Ifc4x3_rc1::IfcOutlet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[733]); } // Ifc4x3_rc1::IfcOutlet::IfcOutlet(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcOutlet::IfcOutlet(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcOutletTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcOutletTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcOutletType ::Ifc4x3_rc1::IfcOutletTypeEnum::Value Ifc4x3_rc1::IfcOutletType::PredefinedType() const { return ::Ifc4x3_rc1::IfcOutletTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcOutletType::setPredefinedType(const ::Ifc4x3_rc1::IfcOutletTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcOutletTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcOutletType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[734]); } const IfcParse::entity& Ifc4x3_rc1::IfcOutletType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[734]); } // Ifc4x3_rc1::IfcOutletType::IfcOutletType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcOutletType::IfcOutletType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcOutletTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcOutletTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcOwnerHistory ::Ifc4x3_rc1::IfcPersonAndOrganization Ifc4x3_rc1::IfcOwnerHistory::OwningUser() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcPersonAndOrganization>(); } void Ifc4x3_rc1::IfcOwnerHistory::setOwningUser(const ::Ifc4x3_rc1::IfcPersonAndOrganization& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcApplication Ifc4x3_rc1::IfcOwnerHistory::OwningApplication() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcApplication>(); } void Ifc4x3_rc1::IfcOwnerHistory::setOwningApplication(const ::Ifc4x3_rc1::IfcApplication& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< ::Ifc4x3_rc1::IfcStateEnum::Value > Ifc4x3_rc1::IfcOwnerHistory::State() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcStateEnum::FromString(get_attribute_value(2)); } void Ifc4x3_rc1::IfcOwnerHistory::setState(const std::optional< ::Ifc4x3_rc1::IfcStateEnum::Value >& v) { if (v) {set_attribute_value(2, EnumerationReference(&::Ifc4x3_rc1::IfcStateEnum::Class(), (size_t) *v));} else {unset_attribute_value(2);} } std::optional< ::Ifc4x3_rc1::IfcChangeActionEnum::Value > Ifc4x3_rc1::IfcOwnerHistory::ChangeAction() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcChangeActionEnum::FromString(get_attribute_value(3)); } void Ifc4x3_rc1::IfcOwnerHistory::setChangeAction(const std::optional< ::Ifc4x3_rc1::IfcChangeActionEnum::Value >& v) { if (v) {set_attribute_value(3, EnumerationReference(&::Ifc4x3_rc1::IfcChangeActionEnum::Class(), (size_t) *v));} else {unset_attribute_value(3);} } std::optional< int > Ifc4x3_rc1::IfcOwnerHistory::LastModifiedDate() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } int v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcOwnerHistory::setLastModifiedDate(const std::optional< int >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } ::Ifc4x3_rc1::IfcPersonAndOrganization Ifc4x3_rc1::IfcOwnerHistory::LastModifyingUser() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcPersonAndOrganization{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcPersonAndOrganization>(); } void Ifc4x3_rc1::IfcOwnerHistory::setLastModifyingUser(const ::Ifc4x3_rc1::IfcPersonAndOrganization& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcApplication Ifc4x3_rc1::IfcOwnerHistory::LastModifyingApplication() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcApplication{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcApplication>(); } void Ifc4x3_rc1::IfcOwnerHistory::setLastModifyingApplication(const ::Ifc4x3_rc1::IfcApplication& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } int Ifc4x3_rc1::IfcOwnerHistory::CreationDate() const { int v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcOwnerHistory::setCreationDate(const int& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcOwnerHistory::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[736]); } const IfcParse::entity& Ifc4x3_rc1::IfcOwnerHistory::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[736]); } // Ifc4x3_rc1::IfcOwnerHistory::IfcOwnerHistory(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcOwnerHistory::IfcOwnerHistory(::Ifc4x3_rc1::IfcPersonAndOrganization v1_OwningUser, ::Ifc4x3_rc1::IfcApplication v2_OwningApplication, std::optional< ::Ifc4x3_rc1::IfcStateEnum::Value > v3_State, std::optional< ::Ifc4x3_rc1::IfcChangeActionEnum::Value > v4_ChangeAction, std::optional< int > v5_LastModifiedDate, ::Ifc4x3_rc1::IfcPersonAndOrganization v6_LastModifyingUser, ::Ifc4x3_rc1::IfcApplication v7_LastModifyingApplication, int v8_CreationDate) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_OwningUser));set_attribute_value(1, (v2_OwningApplication)); if (v3_State) {set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcStateEnum::Class(),(size_t)*v3_State))); } if (v4_ChangeAction) {set_attribute_value(3, (EnumerationReference(&::Ifc4x3_rc1::IfcChangeActionEnum::Class(),(size_t)*v4_ChangeAction))); } if (v5_LastModifiedDate) {set_attribute_value(4, (*v5_LastModifiedDate)); } if (v6_LastModifyingUser) {set_attribute_value(5, (*v6_LastModifyingUser)); } if (v7_LastModifyingApplication) {set_attribute_value(6, (*v7_LastModifyingApplication)); }set_attribute_value(7, (v8_CreationDate));; populate_derived(); } // Function implementations for IfcParameterizedProfileDef ::Ifc4x3_rc1::IfcAxis2Placement2D Ifc4x3_rc1::IfcParameterizedProfileDef::Position() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcAxis2Placement2D{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcAxis2Placement2D>(); } void Ifc4x3_rc1::IfcParameterizedProfileDef::setPosition(const ::Ifc4x3_rc1::IfcAxis2Placement2D& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcParameterizedProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[737]); } const IfcParse::entity& Ifc4x3_rc1::IfcParameterizedProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[737]); } // Ifc4x3_rc1::IfcParameterizedProfileDef::IfcParameterizedProfileDef(const std::weak_ptr& e) : IfcProfileDef(e) { } // Ifc4x3_rc1::IfcParameterizedProfileDef::IfcParameterizedProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position) : IfcProfileDef(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }; populate_derived(); } // Function implementations for IfcPath std::vector< ::Ifc4x3_rc1::IfcOrientedEdge > Ifc4x3_rc1::IfcPath::EdgeList() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcOrientedEdge>(es); } void Ifc4x3_rc1::IfcPath::setEdgeList(const std::vector< ::Ifc4x3_rc1::IfcOrientedEdge >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcPath::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[739]); } const IfcParse::entity& Ifc4x3_rc1::IfcPath::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[739]); } // Ifc4x3_rc1::IfcPath::IfcPath(const std::weak_ptr& e) : IfcTopologicalRepresentationItem(e) { } // Ifc4x3_rc1::IfcPath::IfcPath(std::vector< ::Ifc4x3_rc1::IfcOrientedEdge > v1_EdgeList) : IfcTopologicalRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_EdgeList)->generalize());; populate_derived(); } // Function implementations for IfcPavement std::optional< bool > Ifc4x3_rc1::IfcPavement::Flexible() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } bool v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcPavement::setFlexible(const std::optional< bool >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPavement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[740]); } const IfcParse::entity& Ifc4x3_rc1::IfcPavement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[740]); } // Ifc4x3_rc1::IfcPavement::IfcPavement(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcPavement::IfcPavement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< bool > v9_Flexible) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_Flexible) {set_attribute_value(8, (*v9_Flexible)); }; populate_derived(); } // Function implementations for IfcPavementType bool Ifc4x3_rc1::IfcPavementType::Flexible() const { bool v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcPavementType::setFlexible(const bool& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcPavementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[741]); } const IfcParse::entity& Ifc4x3_rc1::IfcPavementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[741]); } // Ifc4x3_rc1::IfcPavementType::IfcPavementType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcPavementType::IfcPavementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, bool v10_Flexible) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (v10_Flexible));; populate_derived(); } // Function implementations for IfcPcurve ::Ifc4x3_rc1::IfcSurface Ifc4x3_rc1::IfcPcurve::BasisSurface() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcSurface>(); } void Ifc4x3_rc1::IfcPcurve::setBasisSurface(const ::Ifc4x3_rc1::IfcSurface& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcPcurve::ReferenceCurve() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcPcurve::setReferenceCurve(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcPcurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[742]); } const IfcParse::entity& Ifc4x3_rc1::IfcPcurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[742]); } // Ifc4x3_rc1::IfcPcurve::IfcPcurve(const std::weak_ptr& e) : IfcCurve(e) { } // Ifc4x3_rc1::IfcPcurve::IfcPcurve(::Ifc4x3_rc1::IfcSurface v1_BasisSurface, ::Ifc4x3_rc1::IfcCurve v2_ReferenceCurve) : IfcCurve(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_BasisSurface));set_attribute_value(1, (v2_ReferenceCurve));; populate_derived(); } // Function implementations for IfcPerformanceHistory std::string Ifc4x3_rc1::IfcPerformanceHistory::LifeCyclePhase() const { std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcPerformanceHistory::setLifeCyclePhase(const std::string& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< ::Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Value > Ifc4x3_rc1::IfcPerformanceHistory::PredefinedType() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcPerformanceHistory::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Value >& v) { if (v) {set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPerformanceHistory::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[743]); } const IfcParse::entity& Ifc4x3_rc1::IfcPerformanceHistory::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[743]); } // Ifc4x3_rc1::IfcPerformanceHistory::IfcPerformanceHistory(const std::weak_ptr& e) : IfcControl(e) { } // Ifc4x3_rc1::IfcPerformanceHistory::IfcPerformanceHistory(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::string v7_LifeCyclePhase, std::optional< ::Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Value > v8_PredefinedType) : IfcControl(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); }set_attribute_value(6, (v7_LifeCyclePhase)); if (v8_PredefinedType) {set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::Class(),(size_t)*v8_PredefinedType))); }; populate_derived(); } // Function implementations for IfcPermeableCoveringProperties ::Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Value Ifc4x3_rc1::IfcPermeableCoveringProperties::OperationType() const { return ::Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::FromString(get_attribute_value(4)); } void Ifc4x3_rc1::IfcPermeableCoveringProperties::setOperationType(const ::Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Value& v) { set_attribute_value(4, EnumerationReference(&::Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value Ifc4x3_rc1::IfcPermeableCoveringProperties::PanelPosition() const { return ::Ifc4x3_rc1::IfcWindowPanelPositionEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcPermeableCoveringProperties::setPanelPosition(const ::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value& v) { set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(5); } std::optional< double > Ifc4x3_rc1::IfcPermeableCoveringProperties::FrameDepth() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcPermeableCoveringProperties::setFrameDepth(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< double > Ifc4x3_rc1::IfcPermeableCoveringProperties::FrameThickness() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcPermeableCoveringProperties::setFrameThickness(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } ::Ifc4x3_rc1::IfcShapeAspect Ifc4x3_rc1::IfcPermeableCoveringProperties::ShapeAspectStyle() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcShapeAspect{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcShapeAspect>(); } void Ifc4x3_rc1::IfcPermeableCoveringProperties::setShapeAspectStyle(const ::Ifc4x3_rc1::IfcShapeAspect& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcPermeableCoveringProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[746]); } const IfcParse::entity& Ifc4x3_rc1::IfcPermeableCoveringProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[746]); } // Ifc4x3_rc1::IfcPermeableCoveringProperties::IfcPermeableCoveringProperties(const std::weak_ptr& e) : IfcPreDefinedPropertySet(e) { } // Ifc4x3_rc1::IfcPermeableCoveringProperties::IfcPermeableCoveringProperties(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Value v5_OperationType, ::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value v6_PanelPosition, std::optional< double > v7_FrameDepth, std::optional< double > v8_FrameThickness, ::Ifc4x3_rc1::IfcShapeAspect v9_ShapeAspectStyle) : IfcPreDefinedPropertySet(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::Class(),(size_t)v5_OperationType)));set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Class(),(size_t)v6_PanelPosition))); if (v7_FrameDepth) {set_attribute_value(6, (*v7_FrameDepth)); } if (v8_FrameThickness) {set_attribute_value(7, (*v8_FrameThickness)); } if (v9_ShapeAspectStyle) {set_attribute_value(8, (*v9_ShapeAspectStyle)); }; populate_derived(); } // Function implementations for IfcPermit std::optional< ::Ifc4x3_rc1::IfcPermitTypeEnum::Value > Ifc4x3_rc1::IfcPermit::PredefinedType() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPermitTypeEnum::FromString(get_attribute_value(6)); } void Ifc4x3_rc1::IfcPermit::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcPermitTypeEnum::Value >& v) { if (v) {set_attribute_value(6, EnumerationReference(&::Ifc4x3_rc1::IfcPermitTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcPermit::Status() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcPermit::setStatus(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcPermit::LongDescription() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcPermit::setLongDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPermit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[747]); } const IfcParse::entity& Ifc4x3_rc1::IfcPermit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[747]); } // Ifc4x3_rc1::IfcPermit::IfcPermit(const std::weak_ptr& e) : IfcControl(e) { } // Ifc4x3_rc1::IfcPermit::IfcPermit(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< ::Ifc4x3_rc1::IfcPermitTypeEnum::Value > v7_PredefinedType, std::optional< std::string > v8_Status, std::optional< std::string > v9_LongDescription) : IfcControl(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_PredefinedType) {set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcPermitTypeEnum::Class(),(size_t)*v7_PredefinedType))); } if (v8_Status) {set_attribute_value(7, (*v8_Status)); } if (v9_LongDescription) {set_attribute_value(8, (*v9_LongDescription)); }; populate_derived(); } // Function implementations for IfcPerson std::optional< std::string > Ifc4x3_rc1::IfcPerson::Identification() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcPerson::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcPerson::FamilyName() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcPerson::setFamilyName(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcPerson::GivenName() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcPerson::setGivenName(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcPerson::MiddleNames() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcPerson::setMiddleNames(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcPerson::PrefixTitles() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcPerson::setPrefixTitles(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcPerson::SuffixTitles() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcPerson::setSuffixTitles(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > > Ifc4x3_rc1::IfcPerson::Roles() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(6); return cast_vector<::Ifc4x3_rc1::IfcActorRole>(es); } void Ifc4x3_rc1::IfcPerson::setRoles(const std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > >& v) { if (v) {set_attribute_value(6, cast_vector(*v));} else {unset_attribute_value(6);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcAddress > > Ifc4x3_rc1::IfcPerson::Addresses() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcAddress>(es); } void Ifc4x3_rc1::IfcPerson::setAddresses(const std::optional< std::vector< ::Ifc4x3_rc1::IfcAddress > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } std::vector<::Ifc4x3_rc1::IfcPersonAndOrganization> Ifc4x3_rc1::IfcPerson::EngagedIn() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[750], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPerson::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[749]); } const IfcParse::entity& Ifc4x3_rc1::IfcPerson::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[749]); } // Ifc4x3_rc1::IfcPerson::IfcPerson(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcPerson::IfcPerson(std::optional< std::string > v1_Identification, std::optional< std::string > v2_FamilyName, std::optional< std::string > v3_GivenName, std::optional< std::vector< std::string > /*[1:?]*/ > v4_MiddleNames, std::optional< std::vector< std::string > /*[1:?]*/ > v5_PrefixTitles, std::optional< std::vector< std::string > /*[1:?]*/ > v6_SuffixTitles, std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > > v7_Roles, std::optional< std::vector< ::Ifc4x3_rc1::IfcAddress > > v8_Addresses) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(8))) { if (v1_Identification) {set_attribute_value(0, (*v1_Identification)); } if (v2_FamilyName) {set_attribute_value(1, (*v2_FamilyName)); } if (v3_GivenName) {set_attribute_value(2, (*v3_GivenName)); } if (v4_MiddleNames) {set_attribute_value(3, (*v4_MiddleNames)); } if (v5_PrefixTitles) {set_attribute_value(4, (*v5_PrefixTitles)); } if (v6_SuffixTitles) {set_attribute_value(5, (*v6_SuffixTitles)); } if (v7_Roles) {set_attribute_value(6, (*v7_Roles)->generalize()); } if (v8_Addresses) {set_attribute_value(7, (*v8_Addresses)->generalize()); }; populate_derived(); } // Function implementations for IfcPersonAndOrganization ::Ifc4x3_rc1::IfcPerson Ifc4x3_rc1::IfcPersonAndOrganization::ThePerson() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcPerson>(); } void Ifc4x3_rc1::IfcPersonAndOrganization::setThePerson(const ::Ifc4x3_rc1::IfcPerson& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcOrganization Ifc4x3_rc1::IfcPersonAndOrganization::TheOrganization() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcOrganization>(); } void Ifc4x3_rc1::IfcPersonAndOrganization::setTheOrganization(const ::Ifc4x3_rc1::IfcOrganization& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > > Ifc4x3_rc1::IfcPersonAndOrganization::Roles() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcActorRole>(es); } void Ifc4x3_rc1::IfcPersonAndOrganization::setRoles(const std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > >& v) { if (v) {set_attribute_value(2, cast_vector(*v));} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPersonAndOrganization::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[750]); } const IfcParse::entity& Ifc4x3_rc1::IfcPersonAndOrganization::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[750]); } // Ifc4x3_rc1::IfcPersonAndOrganization::IfcPersonAndOrganization(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcPersonAndOrganization::IfcPersonAndOrganization(::Ifc4x3_rc1::IfcPerson v1_ThePerson, ::Ifc4x3_rc1::IfcOrganization v2_TheOrganization, std::optional< std::vector< ::Ifc4x3_rc1::IfcActorRole > > v3_Roles) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_ThePerson));set_attribute_value(1, (v2_TheOrganization)); if (v3_Roles) {set_attribute_value(2, (*v3_Roles)->generalize()); }; populate_derived(); } // Function implementations for IfcPhysicalComplexQuantity std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity > Ifc4x3_rc1::IfcPhysicalComplexQuantity::HasQuantities() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcPhysicalQuantity>(es); } void Ifc4x3_rc1::IfcPhysicalComplexQuantity::setHasQuantities(const std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } std::string Ifc4x3_rc1::IfcPhysicalComplexQuantity::Discrimination() const { std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcPhysicalComplexQuantity::setDiscrimination(const std::string& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcPhysicalComplexQuantity::Quality() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcPhysicalComplexQuantity::setQuality(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcPhysicalComplexQuantity::Usage() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcPhysicalComplexQuantity::setUsage(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPhysicalComplexQuantity::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[752]); } const IfcParse::entity& Ifc4x3_rc1::IfcPhysicalComplexQuantity::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[752]); } // Ifc4x3_rc1::IfcPhysicalComplexQuantity::IfcPhysicalComplexQuantity(const std::weak_ptr& e) : IfcPhysicalQuantity(e) { } // Ifc4x3_rc1::IfcPhysicalComplexQuantity::IfcPhysicalComplexQuantity(std::string v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcPhysicalQuantity > v3_HasQuantities, std::string v4_Discrimination, std::optional< std::string > v5_Quality, std::optional< std::string > v6_Usage) : IfcPhysicalQuantity(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_HasQuantities)->generalize());set_attribute_value(3, (v4_Discrimination)); if (v5_Quality) {set_attribute_value(4, (*v5_Quality)); } if (v6_Usage) {set_attribute_value(5, (*v6_Usage)); }; populate_derived(); } // Function implementations for IfcPhysicalQuantity std::string Ifc4x3_rc1::IfcPhysicalQuantity::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcPhysicalQuantity::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcPhysicalQuantity::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcPhysicalQuantity::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcPhysicalQuantity::HasExternalReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } std::vector<::Ifc4x3_rc1::IfcPhysicalComplexQuantity> Ifc4x3_rc1::IfcPhysicalQuantity::PartOfComplex() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[752], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPhysicalQuantity::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[754]); } const IfcParse::entity& Ifc4x3_rc1::IfcPhysicalQuantity::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[754]); } // Ifc4x3_rc1::IfcPhysicalQuantity::IfcPhysicalQuantity(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcPhysicalQuantity::IfcPhysicalQuantity(std::string v1_Name, std::optional< std::string > v2_Description) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }; populate_derived(); } // Function implementations for IfcPhysicalSimpleQuantity ::Ifc4x3_rc1::IfcNamedUnit Ifc4x3_rc1::IfcPhysicalSimpleQuantity::Unit() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcNamedUnit{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcNamedUnit>(); } void Ifc4x3_rc1::IfcPhysicalSimpleQuantity::setUnit(const ::Ifc4x3_rc1::IfcNamedUnit& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcPhysicalSimpleQuantity::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[755]); } const IfcParse::entity& Ifc4x3_rc1::IfcPhysicalSimpleQuantity::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[755]); } // Ifc4x3_rc1::IfcPhysicalSimpleQuantity::IfcPhysicalSimpleQuantity(const std::weak_ptr& e) : IfcPhysicalQuantity(e) { } // Ifc4x3_rc1::IfcPhysicalSimpleQuantity::IfcPhysicalSimpleQuantity(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcNamedUnit v3_Unit) : IfcPhysicalQuantity(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Unit) {set_attribute_value(2, (*v3_Unit)); }; populate_derived(); } // Function implementations for IfcPile std::optional< ::Ifc4x3_rc1::IfcPileTypeEnum::Value > Ifc4x3_rc1::IfcPile::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPileTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcPile::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcPileTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcPileTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } std::optional< ::Ifc4x3_rc1::IfcPileConstructionEnum::Value > Ifc4x3_rc1::IfcPile::ConstructionType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPileConstructionEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcPile::setConstructionType(const std::optional< ::Ifc4x3_rc1::IfcPileConstructionEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcPileConstructionEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPile::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[756]); } const IfcParse::entity& Ifc4x3_rc1::IfcPile::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[756]); } // Ifc4x3_rc1::IfcPile::IfcPile(const std::weak_ptr& e) : IfcDeepFoundation(e) { } // Ifc4x3_rc1::IfcPile::IfcPile(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcPileTypeEnum::Value > v9_PredefinedType, std::optional< ::Ifc4x3_rc1::IfcPileConstructionEnum::Value > v10_ConstructionType) : IfcDeepFoundation(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcPileTypeEnum::Class(),(size_t)*v9_PredefinedType))); } if (v10_ConstructionType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcPileConstructionEnum::Class(),(size_t)*v10_ConstructionType))); }; populate_derived(); } // Function implementations for IfcPileType ::Ifc4x3_rc1::IfcPileTypeEnum::Value Ifc4x3_rc1::IfcPileType::PredefinedType() const { return ::Ifc4x3_rc1::IfcPileTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcPileType::setPredefinedType(const ::Ifc4x3_rc1::IfcPileTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcPileTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcPileType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[758]); } const IfcParse::entity& Ifc4x3_rc1::IfcPileType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[758]); } // Ifc4x3_rc1::IfcPileType::IfcPileType(const std::weak_ptr& e) : IfcDeepFoundationType(e) { } // Ifc4x3_rc1::IfcPileType::IfcPileType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcPileTypeEnum::Value v10_PredefinedType) : IfcDeepFoundationType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcPileTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcPipeFitting std::optional< ::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value > Ifc4x3_rc1::IfcPipeFitting::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPipeFittingTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcPipeFitting::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPipeFitting::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[760]); } const IfcParse::entity& Ifc4x3_rc1::IfcPipeFitting::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[760]); } // Ifc4x3_rc1::IfcPipeFitting::IfcPipeFitting(const std::weak_ptr& e) : IfcFlowFitting(e) { } // Ifc4x3_rc1::IfcPipeFitting::IfcPipeFitting(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value > v9_PredefinedType) : IfcFlowFitting(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcPipeFittingType ::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value Ifc4x3_rc1::IfcPipeFittingType::PredefinedType() const { return ::Ifc4x3_rc1::IfcPipeFittingTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcPipeFittingType::setPredefinedType(const ::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcPipeFittingType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[761]); } const IfcParse::entity& Ifc4x3_rc1::IfcPipeFittingType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[761]); } // Ifc4x3_rc1::IfcPipeFittingType::IfcPipeFittingType(const std::weak_ptr& e) : IfcFlowFittingType(e) { } // Ifc4x3_rc1::IfcPipeFittingType::IfcPipeFittingType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Value v10_PredefinedType) : IfcFlowFittingType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcPipeFittingTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcPipeSegment std::optional< ::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value > Ifc4x3_rc1::IfcPipeSegment::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcPipeSegment::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPipeSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[763]); } const IfcParse::entity& Ifc4x3_rc1::IfcPipeSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[763]); } // Ifc4x3_rc1::IfcPipeSegment::IfcPipeSegment(const std::weak_ptr& e) : IfcFlowSegment(e) { } // Ifc4x3_rc1::IfcPipeSegment::IfcPipeSegment(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value > v9_PredefinedType) : IfcFlowSegment(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcPipeSegmentType ::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value Ifc4x3_rc1::IfcPipeSegmentType::PredefinedType() const { return ::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcPipeSegmentType::setPredefinedType(const ::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcPipeSegmentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[764]); } const IfcParse::entity& Ifc4x3_rc1::IfcPipeSegmentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[764]); } // Ifc4x3_rc1::IfcPipeSegmentType::IfcPipeSegmentType(const std::weak_ptr& e) : IfcFlowSegmentType(e) { } // Ifc4x3_rc1::IfcPipeSegmentType::IfcPipeSegmentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Value v10_PredefinedType) : IfcFlowSegmentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcPipeSegmentTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcPixelTexture int Ifc4x3_rc1::IfcPixelTexture::Width() const { int v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcPixelTexture::setWidth(const int& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } int Ifc4x3_rc1::IfcPixelTexture::Height() const { int v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcPixelTexture::setHeight(const int& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } int Ifc4x3_rc1::IfcPixelTexture::ColourComponents() const { int v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcPixelTexture::setColourComponents(const int& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::vector< boost::dynamic_bitset<> > /*[1:?]*/ Ifc4x3_rc1::IfcPixelTexture::Pixel() const { std::vector< boost::dynamic_bitset<> > /*[1:?]*/ v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcPixelTexture::setPixel(const std::vector< boost::dynamic_bitset<> > /*[1:?]*/& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcPixelTexture::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[766]); } const IfcParse::entity& Ifc4x3_rc1::IfcPixelTexture::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[766]); } // Ifc4x3_rc1::IfcPixelTexture::IfcPixelTexture(const std::weak_ptr& e) : IfcSurfaceTexture(e) { } // Ifc4x3_rc1::IfcPixelTexture::IfcPixelTexture(bool v1_RepeatS, bool v2_RepeatT, std::optional< std::string > v3_Mode, ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D v4_TextureTransform, std::optional< std::vector< std::string > /*[1:?]*/ > v5_Parameter, int v6_Width, int v7_Height, int v8_ColourComponents, std::vector< boost::dynamic_bitset<> > /*[1:?]*/ v9_Pixel) : IfcSurfaceTexture(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_RepeatS));set_attribute_value(1, (v2_RepeatT)); if (v3_Mode) {set_attribute_value(2, (*v3_Mode)); } if (v4_TextureTransform) {set_attribute_value(3, (*v4_TextureTransform)); } if (v5_Parameter) {set_attribute_value(4, (*v5_Parameter)); }set_attribute_value(5, (v6_Width));set_attribute_value(6, (v7_Height));set_attribute_value(7, (v8_ColourComponents));set_attribute_value(8, (v9_Pixel));; populate_derived(); } // Function implementations for IfcPlacement ::Ifc4x3_rc1::IfcCartesianPoint Ifc4x3_rc1::IfcPlacement::Location() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCartesianPoint>(); } void Ifc4x3_rc1::IfcPlacement::setLocation(const ::Ifc4x3_rc1::IfcCartesianPoint& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcPlacement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[767]); } const IfcParse::entity& Ifc4x3_rc1::IfcPlacement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[767]); } // Ifc4x3_rc1::IfcPlacement::IfcPlacement(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcPlacement::IfcPlacement(::Ifc4x3_rc1::IfcCartesianPoint v1_Location) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Location));; populate_derived(); } // Function implementations for IfcPlanarBox ::Ifc4x3_rc1::IfcAxis2Placement Ifc4x3_rc1::IfcPlanarBox::Placement() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcAxis2Placement>(); } void Ifc4x3_rc1::IfcPlanarBox::setPlacement(const ::Ifc4x3_rc1::IfcAxis2Placement& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcPlanarBox::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[768]); } const IfcParse::entity& Ifc4x3_rc1::IfcPlanarBox::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[768]); } // Ifc4x3_rc1::IfcPlanarBox::IfcPlanarBox(const std::weak_ptr& e) : IfcPlanarExtent(e) { } // Ifc4x3_rc1::IfcPlanarBox::IfcPlanarBox(double v1_SizeInX, double v2_SizeInY, ::Ifc4x3_rc1::IfcAxis2Placement v3_Placement) : IfcPlanarExtent(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_SizeInX));set_attribute_value(1, (v2_SizeInY));set_attribute_value(2, (v3_Placement));; populate_derived(); } // Function implementations for IfcPlanarExtent double Ifc4x3_rc1::IfcPlanarExtent::SizeInX() const { double v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcPlanarExtent::setSizeInX(const double& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcPlanarExtent::SizeInY() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcPlanarExtent::setSizeInY(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcPlanarExtent::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[769]); } const IfcParse::entity& Ifc4x3_rc1::IfcPlanarExtent::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[769]); } // Ifc4x3_rc1::IfcPlanarExtent::IfcPlanarExtent(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcPlanarExtent::IfcPlanarExtent(double v1_SizeInX, double v2_SizeInY) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_SizeInX));set_attribute_value(1, (v2_SizeInY));; populate_derived(); } // Function implementations for IfcPlane // const IfcParse::entity& Ifc4x3_rc1::IfcPlane::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[771]); } const IfcParse::entity& Ifc4x3_rc1::IfcPlane::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[771]); } // Ifc4x3_rc1::IfcPlane::IfcPlane(const std::weak_ptr& e) : IfcElementarySurface(e) { } // Ifc4x3_rc1::IfcPlane::IfcPlane(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position) : IfcElementarySurface(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Position));; populate_derived(); } // Function implementations for IfcPlant // const IfcParse::entity& Ifc4x3_rc1::IfcPlant::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[773]); } const IfcParse::entity& Ifc4x3_rc1::IfcPlant::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[773]); } // Ifc4x3_rc1::IfcPlant::IfcPlant(const std::weak_ptr& e) : IfcGeographicElement(e) { } // Ifc4x3_rc1::IfcPlant::IfcPlant(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Value > v9_PredefinedType) : IfcGeographicElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGeographicElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcPlate std::optional< ::Ifc4x3_rc1::IfcPlateTypeEnum::Value > Ifc4x3_rc1::IfcPlate::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPlateTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcPlate::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcPlateTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcPlateTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPlate::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[774]); } const IfcParse::entity& Ifc4x3_rc1::IfcPlate::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[774]); } // Ifc4x3_rc1::IfcPlate::IfcPlate(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcPlate::IfcPlate(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcPlateTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcPlateTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcPlateStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcPlateStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[775]); } const IfcParse::entity& Ifc4x3_rc1::IfcPlateStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[775]); } // Ifc4x3_rc1::IfcPlateStandardCase::IfcPlateStandardCase(const std::weak_ptr& e) : IfcPlate(e) { } // Ifc4x3_rc1::IfcPlateStandardCase::IfcPlateStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcPlateTypeEnum::Value > v9_PredefinedType) : IfcPlate(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcPlateTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcPlateType ::Ifc4x3_rc1::IfcPlateTypeEnum::Value Ifc4x3_rc1::IfcPlateType::PredefinedType() const { return ::Ifc4x3_rc1::IfcPlateTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcPlateType::setPredefinedType(const ::Ifc4x3_rc1::IfcPlateTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcPlateTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcPlateType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[776]); } const IfcParse::entity& Ifc4x3_rc1::IfcPlateType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[776]); } // Ifc4x3_rc1::IfcPlateType::IfcPlateType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcPlateType::IfcPlateType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcPlateTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcPlateTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcPoint // const IfcParse::entity& Ifc4x3_rc1::IfcPoint::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[778]); } const IfcParse::entity& Ifc4x3_rc1::IfcPoint::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[778]); } // Ifc4x3_rc1::IfcPoint::IfcPoint(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcPoint::IfcPoint() : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcPointOnCurve ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcPointOnCurve::BasisCurve() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcPointOnCurve::setBasisCurve(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcPointOnCurve::PointParameter() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcPointOnCurve::setPointParameter(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcPointOnCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[779]); } const IfcParse::entity& Ifc4x3_rc1::IfcPointOnCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[779]); } // Ifc4x3_rc1::IfcPointOnCurve::IfcPointOnCurve(const std::weak_ptr& e) : IfcPoint(e) { } // Ifc4x3_rc1::IfcPointOnCurve::IfcPointOnCurve(::Ifc4x3_rc1::IfcCurve v1_BasisCurve, double v2_PointParameter) : IfcPoint(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_BasisCurve));set_attribute_value(1, (v2_PointParameter));; populate_derived(); } // Function implementations for IfcPointOnSurface ::Ifc4x3_rc1::IfcSurface Ifc4x3_rc1::IfcPointOnSurface::BasisSurface() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcSurface>(); } void Ifc4x3_rc1::IfcPointOnSurface::setBasisSurface(const ::Ifc4x3_rc1::IfcSurface& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcPointOnSurface::PointParameterU() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcPointOnSurface::setPointParameterU(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcPointOnSurface::PointParameterV() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcPointOnSurface::setPointParameterV(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcPointOnSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[780]); } const IfcParse::entity& Ifc4x3_rc1::IfcPointOnSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[780]); } // Ifc4x3_rc1::IfcPointOnSurface::IfcPointOnSurface(const std::weak_ptr& e) : IfcPoint(e) { } // Ifc4x3_rc1::IfcPointOnSurface::IfcPointOnSurface(::Ifc4x3_rc1::IfcSurface v1_BasisSurface, double v2_PointParameterU, double v3_PointParameterV) : IfcPoint(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_BasisSurface));set_attribute_value(1, (v2_PointParameterU));set_attribute_value(2, (v3_PointParameterV));; populate_derived(); } // Function implementations for IfcPolyLoop std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > Ifc4x3_rc1::IfcPolyLoop::Polygon() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcCartesianPoint>(es); } void Ifc4x3_rc1::IfcPolyLoop::setPolygon(const std::vector< ::Ifc4x3_rc1::IfcCartesianPoint >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcPolyLoop::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[785]); } const IfcParse::entity& Ifc4x3_rc1::IfcPolyLoop::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[785]); } // Ifc4x3_rc1::IfcPolyLoop::IfcPolyLoop(const std::weak_ptr& e) : IfcLoop(e) { } // Ifc4x3_rc1::IfcPolyLoop::IfcPolyLoop(std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > v1_Polygon) : IfcLoop(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Polygon)->generalize());; populate_derived(); } // Function implementations for IfcPolygonalBoundedHalfSpace ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcPolygonalBoundedHalfSpace::Position() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcPolygonalBoundedHalfSpace::setPosition(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcBoundedCurve Ifc4x3_rc1::IfcPolygonalBoundedHalfSpace::PolygonalBoundary() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcBoundedCurve>(); } void Ifc4x3_rc1::IfcPolygonalBoundedHalfSpace::setPolygonalBoundary(const ::Ifc4x3_rc1::IfcBoundedCurve& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcPolygonalBoundedHalfSpace::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[782]); } const IfcParse::entity& Ifc4x3_rc1::IfcPolygonalBoundedHalfSpace::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[782]); } // Ifc4x3_rc1::IfcPolygonalBoundedHalfSpace::IfcPolygonalBoundedHalfSpace(const std::weak_ptr& e) : IfcHalfSpaceSolid(e) { } // Ifc4x3_rc1::IfcPolygonalBoundedHalfSpace::IfcPolygonalBoundedHalfSpace(::Ifc4x3_rc1::IfcSurface v1_BaseSurface, bool v2_AgreementFlag, ::Ifc4x3_rc1::IfcAxis2Placement3D v3_Position, ::Ifc4x3_rc1::IfcBoundedCurve v4_PolygonalBoundary) : IfcHalfSpaceSolid(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_BaseSurface));set_attribute_value(1, (v2_AgreementFlag));set_attribute_value(2, (v3_Position));set_attribute_value(3, (v4_PolygonalBoundary));; populate_derived(); } // Function implementations for IfcPolygonalFaceSet std::optional< bool > Ifc4x3_rc1::IfcPolygonalFaceSet::Closed() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } bool v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcPolygonalFaceSet::setClosed(const std::optional< bool >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector< ::Ifc4x3_rc1::IfcIndexedPolygonalFace > Ifc4x3_rc1::IfcPolygonalFaceSet::Faces() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcIndexedPolygonalFace>(es); } void Ifc4x3_rc1::IfcPolygonalFaceSet::setFaces(const std::vector< ::Ifc4x3_rc1::IfcIndexedPolygonalFace >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } std::optional< std::vector< int > /*[1:?]*/ > Ifc4x3_rc1::IfcPolygonalFaceSet::PnIndex() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::vector< int > /*[1:?]*/ v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcPolygonalFaceSet::setPnIndex(const std::optional< std::vector< int > /*[1:?]*/ >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPolygonalFaceSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[783]); } const IfcParse::entity& Ifc4x3_rc1::IfcPolygonalFaceSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[783]); } // Ifc4x3_rc1::IfcPolygonalFaceSet::IfcPolygonalFaceSet(const std::weak_ptr& e) : IfcTessellatedFaceSet(e) { } // Ifc4x3_rc1::IfcPolygonalFaceSet::IfcPolygonalFaceSet(::Ifc4x3_rc1::IfcCartesianPointList3D v1_Coordinates, std::optional< bool > v2_Closed, std::vector< ::Ifc4x3_rc1::IfcIndexedPolygonalFace > v3_Faces, std::optional< std::vector< int > /*[1:?]*/ > v4_PnIndex) : IfcTessellatedFaceSet(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Coordinates)); if (v2_Closed) {set_attribute_value(1, (*v2_Closed)); }set_attribute_value(2, (v3_Faces)->generalize()); if (v4_PnIndex) {set_attribute_value(3, (*v4_PnIndex)); }; populate_derived(); } // Function implementations for IfcPolyline std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > Ifc4x3_rc1::IfcPolyline::Points() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcCartesianPoint>(es); } void Ifc4x3_rc1::IfcPolyline::setPoints(const std::vector< ::Ifc4x3_rc1::IfcCartesianPoint >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcPolyline::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[784]); } const IfcParse::entity& Ifc4x3_rc1::IfcPolyline::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[784]); } // Ifc4x3_rc1::IfcPolyline::IfcPolyline(const std::weak_ptr& e) : IfcBoundedCurve(e) { } // Ifc4x3_rc1::IfcPolyline::IfcPolyline(std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > v1_Points) : IfcBoundedCurve(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Points)->generalize());; populate_derived(); } // Function implementations for IfcPort std::vector<::Ifc4x3_rc1::IfcRelConnectsPortToElement> Ifc4x3_rc1::IfcPort::ContainedIn() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[932], 4)); } std::vector<::Ifc4x3_rc1::IfcRelConnectsPorts> Ifc4x3_rc1::IfcPort::ConnectedFrom() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[931], 5)); } std::vector<::Ifc4x3_rc1::IfcRelConnectsPorts> Ifc4x3_rc1::IfcPort::ConnectedTo() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[931], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPort::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[786]); } const IfcParse::entity& Ifc4x3_rc1::IfcPort::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[786]); } // Ifc4x3_rc1::IfcPort::IfcPort(const std::weak_ptr& e) : IfcProduct(e) { } // Ifc4x3_rc1::IfcPort::IfcPort(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation) : IfcProduct(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }; populate_derived(); } // Function implementations for IfcPositioningElement std::vector<::Ifc4x3_rc1::IfcRelContainedInSpatialStructure> Ifc4x3_rc1::IfcPositioningElement::ContainedInStructure() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[937], 4)); } std::vector<::Ifc4x3_rc1::IfcRelPositions> Ifc4x3_rc1::IfcPositioningElement::Positions() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[951], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPositioningElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[787]); } const IfcParse::entity& Ifc4x3_rc1::IfcPositioningElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[787]); } // Ifc4x3_rc1::IfcPositioningElement::IfcPositioningElement(const std::weak_ptr& e) : IfcProduct(e) { } // Ifc4x3_rc1::IfcPositioningElement::IfcPositioningElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation) : IfcProduct(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }; populate_derived(); } // Function implementations for IfcPostalAddress std::optional< std::string > Ifc4x3_rc1::IfcPostalAddress::InternalLocation() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcPostalAddress::setInternalLocation(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcPostalAddress::AddressLines() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcPostalAddress::setAddressLines(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcPostalAddress::PostalBox() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcPostalAddress::setPostalBox(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcPostalAddress::Town() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcPostalAddress::setTown(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcPostalAddress::Region() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcPostalAddress::setRegion(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcPostalAddress::PostalCode() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcPostalAddress::setPostalCode(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< std::string > Ifc4x3_rc1::IfcPostalAddress::Country() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::string v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcPostalAddress::setCountry(const std::optional< std::string >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPostalAddress::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[792]); } const IfcParse::entity& Ifc4x3_rc1::IfcPostalAddress::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[792]); } // Ifc4x3_rc1::IfcPostalAddress::IfcPostalAddress(const std::weak_ptr& e) : IfcAddress(e) { } // Ifc4x3_rc1::IfcPostalAddress::IfcPostalAddress(std::optional< ::Ifc4x3_rc1::IfcAddressTypeEnum::Value > v1_Purpose, std::optional< std::string > v2_Description, std::optional< std::string > v3_UserDefinedPurpose, std::optional< std::string > v4_InternalLocation, std::optional< std::vector< std::string > /*[1:?]*/ > v5_AddressLines, std::optional< std::string > v6_PostalBox, std::optional< std::string > v7_Town, std::optional< std::string > v8_Region, std::optional< std::string > v9_PostalCode, std::optional< std::string > v10_Country) : IfcAddress(const std::weak_ptr&(in_memory_attribute_storage(10))) { if (v1_Purpose) {set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcAddressTypeEnum::Class(),(size_t)*v1_Purpose))); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_UserDefinedPurpose) {set_attribute_value(2, (*v3_UserDefinedPurpose)); } if (v4_InternalLocation) {set_attribute_value(3, (*v4_InternalLocation)); } if (v5_AddressLines) {set_attribute_value(4, (*v5_AddressLines)); } if (v6_PostalBox) {set_attribute_value(5, (*v6_PostalBox)); } if (v7_Town) {set_attribute_value(6, (*v7_Town)); } if (v8_Region) {set_attribute_value(7, (*v8_Region)); } if (v9_PostalCode) {set_attribute_value(8, (*v9_PostalCode)); } if (v10_Country) {set_attribute_value(9, (*v10_Country)); }; populate_derived(); } // Function implementations for IfcPreDefinedColour // const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedColour::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[794]); } const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedColour::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[794]); } // Ifc4x3_rc1::IfcPreDefinedColour::IfcPreDefinedColour(const std::weak_ptr& e) : IfcPreDefinedItem(e) { } // Ifc4x3_rc1::IfcPreDefinedColour::IfcPreDefinedColour(std::string v1_Name) : IfcPreDefinedItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Name));; populate_derived(); } // Function implementations for IfcPreDefinedCurveFont // const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedCurveFont::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[795]); } const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedCurveFont::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[795]); } // Ifc4x3_rc1::IfcPreDefinedCurveFont::IfcPreDefinedCurveFont(const std::weak_ptr& e) : IfcPreDefinedItem(e) { } // Ifc4x3_rc1::IfcPreDefinedCurveFont::IfcPreDefinedCurveFont(std::string v1_Name) : IfcPreDefinedItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Name));; populate_derived(); } // Function implementations for IfcPreDefinedItem std::string Ifc4x3_rc1::IfcPreDefinedItem::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcPreDefinedItem::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[796]); } const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[796]); } // Ifc4x3_rc1::IfcPreDefinedItem::IfcPreDefinedItem(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcPreDefinedItem::IfcPreDefinedItem(std::string v1_Name) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Name));; populate_derived(); } // Function implementations for IfcPreDefinedProperties // const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[797]); } const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[797]); } // Ifc4x3_rc1::IfcPreDefinedProperties::IfcPreDefinedProperties(const std::weak_ptr& e) : IfcPropertyAbstraction(e) { } // Ifc4x3_rc1::IfcPreDefinedProperties::IfcPreDefinedProperties() : IfcPropertyAbstraction(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcPreDefinedPropertySet // const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedPropertySet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[798]); } const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedPropertySet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[798]); } // Ifc4x3_rc1::IfcPreDefinedPropertySet::IfcPreDefinedPropertySet(const std::weak_ptr& e) : IfcPropertySetDefinition(e) { } // Ifc4x3_rc1::IfcPreDefinedPropertySet::IfcPreDefinedPropertySet(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcPropertySetDefinition(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcPreDefinedTextFont // const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedTextFont::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[799]); } const IfcParse::entity& Ifc4x3_rc1::IfcPreDefinedTextFont::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[799]); } // Ifc4x3_rc1::IfcPreDefinedTextFont::IfcPreDefinedTextFont(const std::weak_ptr& e) : IfcPreDefinedItem(e) { } // Ifc4x3_rc1::IfcPreDefinedTextFont::IfcPreDefinedTextFont(std::string v1_Name) : IfcPreDefinedItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Name));; populate_derived(); } // Function implementations for IfcPresentationItem // const IfcParse::entity& Ifc4x3_rc1::IfcPresentationItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[802]); } const IfcParse::entity& Ifc4x3_rc1::IfcPresentationItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[802]); } // Ifc4x3_rc1::IfcPresentationItem::IfcPresentationItem(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcPresentationItem::IfcPresentationItem() : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcPresentationLayerAssignment std::string Ifc4x3_rc1::IfcPresentationLayerAssignment::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcPresentationLayerAssignment::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcPresentationLayerAssignment::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcPresentationLayerAssignment::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector< ::Ifc4x3_rc1::IfcLayeredItem > Ifc4x3_rc1::IfcPresentationLayerAssignment::AssignedItems() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcLayeredItem>(es); } void Ifc4x3_rc1::IfcPresentationLayerAssignment::setAssignedItems(const std::vector< ::Ifc4x3_rc1::IfcLayeredItem >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } std::optional< std::string > Ifc4x3_rc1::IfcPresentationLayerAssignment::Identifier() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcPresentationLayerAssignment::setIdentifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPresentationLayerAssignment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[803]); } const IfcParse::entity& Ifc4x3_rc1::IfcPresentationLayerAssignment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[803]); } // Ifc4x3_rc1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcLayeredItem > v3_AssignedItems, std::optional< std::string > v4_Identifier) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_AssignedItems)->generalize()); if (v4_Identifier) {set_attribute_value(3, (*v4_Identifier)); }; populate_derived(); } // Function implementations for IfcPresentationLayerWithStyle boost::logic::tribool Ifc4x3_rc1::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcPresentationLayerWithStyle::setLayerOn(const boost::logic::tribool& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } boost::logic::tribool Ifc4x3_rc1::IfcPresentationLayerWithStyle::LayerFrozen() const { boost::logic::tribool v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcPresentationLayerWithStyle::setLayerFrozen(const boost::logic::tribool& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } boost::logic::tribool Ifc4x3_rc1::IfcPresentationLayerWithStyle::LayerBlocked() const { boost::logic::tribool v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcPresentationLayerWithStyle::setLayerBlocked(const boost::logic::tribool& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::vector< ::Ifc4x3_rc1::IfcPresentationStyle > Ifc4x3_rc1::IfcPresentationLayerWithStyle::LayerStyles() const { std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcPresentationStyle>(es); } void Ifc4x3_rc1::IfcPresentationLayerWithStyle::setLayerStyles(const std::vector< ::Ifc4x3_rc1::IfcPresentationStyle >& v) { set_attribute_value(7, cast_vector(v));if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcPresentationLayerWithStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[804]); } const IfcParse::entity& Ifc4x3_rc1::IfcPresentationLayerWithStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[804]); } // Ifc4x3_rc1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(const std::weak_ptr& e) : IfcPresentationLayerAssignment(e) { } // Ifc4x3_rc1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcLayeredItem > v3_AssignedItems, std::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, std::vector< ::Ifc4x3_rc1::IfcPresentationStyle > v8_LayerStyles) : IfcPresentationLayerAssignment(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_AssignedItems)->generalize()); if (v4_Identifier) {set_attribute_value(3, (*v4_Identifier)); }set_attribute_value(4, (v5_LayerOn));set_attribute_value(5, (v6_LayerFrozen));set_attribute_value(6, (v7_LayerBlocked));set_attribute_value(7, (v8_LayerStyles)->generalize());; populate_derived(); } // Function implementations for IfcPresentationStyle std::optional< std::string > Ifc4x3_rc1::IfcPresentationStyle::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcPresentationStyle::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPresentationStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[805]); } const IfcParse::entity& Ifc4x3_rc1::IfcPresentationStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[805]); } // Ifc4x3_rc1::IfcPresentationStyle::IfcPresentationStyle(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcPresentationStyle::IfcPresentationStyle(std::optional< std::string > v1_Name) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }; populate_derived(); } // Function implementations for IfcPresentationStyleAssignment std::vector< ::Ifc4x3_rc1::IfcPresentationStyleSelect > Ifc4x3_rc1::IfcPresentationStyleAssignment::Styles() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcPresentationStyleSelect>(es); } void Ifc4x3_rc1::IfcPresentationStyleAssignment::setStyles(const std::vector< ::Ifc4x3_rc1::IfcPresentationStyleSelect >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcPresentationStyleAssignment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[806]); } const IfcParse::entity& Ifc4x3_rc1::IfcPresentationStyleAssignment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[806]); } // Ifc4x3_rc1::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(std::vector< ::Ifc4x3_rc1::IfcPresentationStyleSelect > v1_Styles) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Styles)->generalize());; populate_derived(); } // Function implementations for IfcProcedure std::optional< ::Ifc4x3_rc1::IfcProcedureTypeEnum::Value > Ifc4x3_rc1::IfcProcedure::PredefinedType() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcProcedureTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcProcedure::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcProcedureTypeEnum::Value >& v) { if (v) {set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcProcedureTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcProcedure::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[809]); } const IfcParse::entity& Ifc4x3_rc1::IfcProcedure::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[809]); } // Ifc4x3_rc1::IfcProcedure::IfcProcedure(const std::weak_ptr& e) : IfcProcess(e) { } // Ifc4x3_rc1::IfcProcedure::IfcProcedure(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, std::optional< ::Ifc4x3_rc1::IfcProcedureTypeEnum::Value > v8_PredefinedType) : IfcProcess(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_PredefinedType) {set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcProcedureTypeEnum::Class(),(size_t)*v8_PredefinedType))); }; populate_derived(); } // Function implementations for IfcProcedureType ::Ifc4x3_rc1::IfcProcedureTypeEnum::Value Ifc4x3_rc1::IfcProcedureType::PredefinedType() const { return ::Ifc4x3_rc1::IfcProcedureTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcProcedureType::setPredefinedType(const ::Ifc4x3_rc1::IfcProcedureTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcProcedureTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcProcedureType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[810]); } const IfcParse::entity& Ifc4x3_rc1::IfcProcedureType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[810]); } // Ifc4x3_rc1::IfcProcedureType::IfcProcedureType(const std::weak_ptr& e) : IfcTypeProcess(e) { } // Ifc4x3_rc1::IfcProcedureType::IfcProcedureType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ProcessType, ::Ifc4x3_rc1::IfcProcedureTypeEnum::Value v10_PredefinedType) : IfcTypeProcess(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ProcessType) {set_attribute_value(8, (*v9_ProcessType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcProcedureTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcProcess std::optional< std::string > Ifc4x3_rc1::IfcProcess::Identification() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcProcess::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcProcess::LongDescription() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcProcess::setLongDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::vector<::Ifc4x3_rc1::IfcRelSequence> Ifc4x3_rc1::IfcProcess::IsPredecessorTo() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[954], 4)); } std::vector<::Ifc4x3_rc1::IfcRelSequence> Ifc4x3_rc1::IfcProcess::IsSuccessorFrom() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[954], 5)); } std::vector<::Ifc4x3_rc1::IfcRelAssignsToProcess> Ifc4x3_rc1::IfcProcess::OperatesOn() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[916], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcProcess::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[812]); } const IfcParse::entity& Ifc4x3_rc1::IfcProcess::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[812]); } // Ifc4x3_rc1::IfcProcess::IfcProcess(const std::weak_ptr& e) : IfcObject(e) { } // Ifc4x3_rc1::IfcProcess::IfcProcess(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription) : IfcObject(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); }; populate_derived(); } // Function implementations for IfcProduct ::Ifc4x3_rc1::IfcObjectPlacement Ifc4x3_rc1::IfcProduct::ObjectPlacement() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcObjectPlacement{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcObjectPlacement>(); } void Ifc4x3_rc1::IfcProduct::setObjectPlacement(const ::Ifc4x3_rc1::IfcObjectPlacement& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcProductRepresentation Ifc4x3_rc1::IfcProduct::Representation() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcProductRepresentation{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcProductRepresentation>(); } void Ifc4x3_rc1::IfcProduct::setRepresentation(const ::Ifc4x3_rc1::IfcProductRepresentation& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::vector<::Ifc4x3_rc1::IfcRelAssignsToProduct> Ifc4x3_rc1::IfcProduct::ReferencedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[917], 6)); } std::vector<::Ifc4x3_rc1::IfcRelPositions> Ifc4x3_rc1::IfcProduct::PositionedRelativeTo() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[951], 5)); } std::vector<::Ifc4x3_rc1::IfcRelReferencedInSpatialStructure> Ifc4x3_rc1::IfcProduct::ReferencedInStructures() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[953], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcProduct::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[814]); } const IfcParse::entity& Ifc4x3_rc1::IfcProduct::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[814]); } // Ifc4x3_rc1::IfcProduct::IfcProduct(const std::weak_ptr& e) : IfcObject(e) { } // Ifc4x3_rc1::IfcProduct::IfcProduct(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation) : IfcObject(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }; populate_derived(); } // Function implementations for IfcProductDefinitionShape std::vector<::Ifc4x3_rc1::IfcProduct> Ifc4x3_rc1::IfcProductDefinitionShape::ShapeOfProduct() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[814], 6)); } std::vector<::Ifc4x3_rc1::IfcShapeAspect> Ifc4x3_rc1::IfcProductDefinitionShape::HasShapeAspects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1010], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcProductDefinitionShape::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[815]); } const IfcParse::entity& Ifc4x3_rc1::IfcProductDefinitionShape::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[815]); } // Ifc4x3_rc1::IfcProductDefinitionShape::IfcProductDefinitionShape(const std::weak_ptr& e) : IfcProductRepresentation(e) { } // Ifc4x3_rc1::IfcProductDefinitionShape::IfcProductDefinitionShape(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcRepresentation > v3_Representations) : IfcProductRepresentation(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_Representations)->generalize());; populate_derived(); } // Function implementations for IfcProductRepresentation std::optional< std::string > Ifc4x3_rc1::IfcProductRepresentation::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcProductRepresentation::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcProductRepresentation::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcProductRepresentation::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector< ::Ifc4x3_rc1::IfcRepresentation > Ifc4x3_rc1::IfcProductRepresentation::Representations() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcRepresentation>(es); } void Ifc4x3_rc1::IfcProductRepresentation::setRepresentations(const std::vector< ::Ifc4x3_rc1::IfcRepresentation >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcProductRepresentation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[816]); } const IfcParse::entity& Ifc4x3_rc1::IfcProductRepresentation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[816]); } // Ifc4x3_rc1::IfcProductRepresentation::IfcProductRepresentation(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcProductRepresentation::IfcProductRepresentation(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcRepresentation > v3_Representations) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_Representations)->generalize());; populate_derived(); } // Function implementations for IfcProfileDef ::Ifc4x3_rc1::IfcProfileTypeEnum::Value Ifc4x3_rc1::IfcProfileDef::ProfileType() const { return ::Ifc4x3_rc1::IfcProfileTypeEnum::FromString(get_attribute_value(0)); } void Ifc4x3_rc1::IfcProfileDef::setProfileType(const ::Ifc4x3_rc1::IfcProfileTypeEnum::Value& v) { set_attribute_value(0, EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcProfileDef::ProfileName() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcProfileDef::setProfileName(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcProfileDef::HasExternalReference() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } std::vector<::Ifc4x3_rc1::IfcProfileProperties> Ifc4x3_rc1::IfcProfileDef::HasProperties() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[820], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[819]); } const IfcParse::entity& Ifc4x3_rc1::IfcProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[819]); } // Ifc4x3_rc1::IfcProfileDef::IfcProfileDef(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcProfileDef::IfcProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); }; populate_derived(); } // Function implementations for IfcProfileProperties ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcProfileProperties::ProfileDefinition() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcProfileProperties::setProfileDefinition(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcProfileProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[820]); } const IfcParse::entity& Ifc4x3_rc1::IfcProfileProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[820]); } // Ifc4x3_rc1::IfcProfileProperties::IfcProfileProperties(const std::weak_ptr& e) : IfcExtendedProperties(e) { } // Ifc4x3_rc1::IfcProfileProperties::IfcProfileProperties(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcProperty > v3_Properties, ::Ifc4x3_rc1::IfcProfileDef v4_ProfileDefinition) : IfcExtendedProperties(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_Properties)->generalize());set_attribute_value(3, (v4_ProfileDefinition));; populate_derived(); } // Function implementations for IfcProject // const IfcParse::entity& Ifc4x3_rc1::IfcProject::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[822]); } const IfcParse::entity& Ifc4x3_rc1::IfcProject::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[822]); } // Ifc4x3_rc1::IfcProject::IfcProject(const std::weak_ptr& e) : IfcContext(e) { } // Ifc4x3_rc1::IfcProject::IfcProject(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_LongName, std::optional< std::string > v7_Phase, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationContext > > v8_RepresentationContexts, ::Ifc4x3_rc1::IfcUnitAssignment v9_UnitsInContext) : IfcContext(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_LongName) {set_attribute_value(5, (*v6_LongName)); } if (v7_Phase) {set_attribute_value(6, (*v7_Phase)); } if (v8_RepresentationContexts) {set_attribute_value(7, (*v8_RepresentationContexts)->generalize()); } if (v9_UnitsInContext) {set_attribute_value(8, (*v9_UnitsInContext)); }; populate_derived(); } // Function implementations for IfcProjectLibrary // const IfcParse::entity& Ifc4x3_rc1::IfcProjectLibrary::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[827]); } const IfcParse::entity& Ifc4x3_rc1::IfcProjectLibrary::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[827]); } // Ifc4x3_rc1::IfcProjectLibrary::IfcProjectLibrary(const std::weak_ptr& e) : IfcContext(e) { } // Ifc4x3_rc1::IfcProjectLibrary::IfcProjectLibrary(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_LongName, std::optional< std::string > v7_Phase, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationContext > > v8_RepresentationContexts, ::Ifc4x3_rc1::IfcUnitAssignment v9_UnitsInContext) : IfcContext(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_LongName) {set_attribute_value(5, (*v6_LongName)); } if (v7_Phase) {set_attribute_value(6, (*v7_Phase)); } if (v8_RepresentationContexts) {set_attribute_value(7, (*v8_RepresentationContexts)->generalize()); } if (v9_UnitsInContext) {set_attribute_value(8, (*v9_UnitsInContext)); }; populate_derived(); } // Function implementations for IfcProjectOrder std::optional< ::Ifc4x3_rc1::IfcProjectOrderTypeEnum::Value > Ifc4x3_rc1::IfcProjectOrder::PredefinedType() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcProjectOrderTypeEnum::FromString(get_attribute_value(6)); } void Ifc4x3_rc1::IfcProjectOrder::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcProjectOrderTypeEnum::Value >& v) { if (v) {set_attribute_value(6, EnumerationReference(&::Ifc4x3_rc1::IfcProjectOrderTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcProjectOrder::Status() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcProjectOrder::setStatus(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcProjectOrder::LongDescription() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcProjectOrder::setLongDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcProjectOrder::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[828]); } const IfcParse::entity& Ifc4x3_rc1::IfcProjectOrder::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[828]); } // Ifc4x3_rc1::IfcProjectOrder::IfcProjectOrder(const std::weak_ptr& e) : IfcControl(e) { } // Ifc4x3_rc1::IfcProjectOrder::IfcProjectOrder(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< ::Ifc4x3_rc1::IfcProjectOrderTypeEnum::Value > v7_PredefinedType, std::optional< std::string > v8_Status, std::optional< std::string > v9_LongDescription) : IfcControl(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_PredefinedType) {set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcProjectOrderTypeEnum::Class(),(size_t)*v7_PredefinedType))); } if (v8_Status) {set_attribute_value(7, (*v8_Status)); } if (v9_LongDescription) {set_attribute_value(8, (*v9_LongDescription)); }; populate_derived(); } // Function implementations for IfcProjectedCRS std::optional< std::string > Ifc4x3_rc1::IfcProjectedCRS::MapProjection() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcProjectedCRS::setMapProjection(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcProjectedCRS::MapZone() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcProjectedCRS::setMapZone(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } ::Ifc4x3_rc1::IfcNamedUnit Ifc4x3_rc1::IfcProjectedCRS::MapUnit() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcNamedUnit{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcNamedUnit>(); } void Ifc4x3_rc1::IfcProjectedCRS::setMapUnit(const ::Ifc4x3_rc1::IfcNamedUnit& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcProjectedCRS::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[823]); } const IfcParse::entity& Ifc4x3_rc1::IfcProjectedCRS::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[823]); } // Ifc4x3_rc1::IfcProjectedCRS::IfcProjectedCRS(const std::weak_ptr& e) : IfcCoordinateReferenceSystem(e) { } // Ifc4x3_rc1::IfcProjectedCRS::IfcProjectedCRS(std::string v1_Name, std::optional< std::string > v2_Description, std::optional< std::string > v3_GeodeticDatum, std::optional< std::string > v4_VerticalDatum, std::optional< std::string > v5_MapProjection, std::optional< std::string > v6_MapZone, ::Ifc4x3_rc1::IfcNamedUnit v7_MapUnit) : IfcCoordinateReferenceSystem(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_GeodeticDatum) {set_attribute_value(2, (*v3_GeodeticDatum)); } if (v4_VerticalDatum) {set_attribute_value(3, (*v4_VerticalDatum)); } if (v5_MapProjection) {set_attribute_value(4, (*v5_MapProjection)); } if (v6_MapZone) {set_attribute_value(5, (*v6_MapZone)); } if (v7_MapUnit) {set_attribute_value(6, (*v7_MapUnit)); }; populate_derived(); } // Function implementations for IfcProjectionElement std::optional< ::Ifc4x3_rc1::IfcProjectionElementTypeEnum::Value > Ifc4x3_rc1::IfcProjectionElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcProjectionElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcProjectionElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcProjectionElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcProjectionElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcProjectionElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[825]); } const IfcParse::entity& Ifc4x3_rc1::IfcProjectionElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[825]); } // Ifc4x3_rc1::IfcProjectionElement::IfcProjectionElement(const std::weak_ptr& e) : IfcFeatureElementAddition(e) { } // Ifc4x3_rc1::IfcProjectionElement::IfcProjectionElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcProjectionElementTypeEnum::Value > v9_PredefinedType) : IfcFeatureElementAddition(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcProjectionElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcProperty std::string Ifc4x3_rc1::IfcProperty::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcProperty::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcProperty::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcProperty::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector<::Ifc4x3_rc1::IfcPropertySet> Ifc4x3_rc1::IfcProperty::PartOfPset() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[839], 4)); } std::vector<::Ifc4x3_rc1::IfcPropertyDependencyRelationship> Ifc4x3_rc1::IfcProperty::PropertyForDependance() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[834], 2)); } std::vector<::Ifc4x3_rc1::IfcPropertyDependencyRelationship> Ifc4x3_rc1::IfcProperty::PropertyDependsOn() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[834], 3)); } std::vector<::Ifc4x3_rc1::IfcComplexProperty> Ifc4x3_rc1::IfcProperty::PartOfComplex() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[195], 3)); } std::vector<::Ifc4x3_rc1::IfcResourceConstraintRelationship> Ifc4x3_rc1::IfcProperty::HasConstraints() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[967], 3)); } std::vector<::Ifc4x3_rc1::IfcResourceApprovalRelationship> Ifc4x3_rc1::IfcProperty::HasApprovals() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[966], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcProperty::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[830]); } const IfcParse::entity& Ifc4x3_rc1::IfcProperty::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[830]); } // Ifc4x3_rc1::IfcProperty::IfcProperty(const std::weak_ptr& e) : IfcPropertyAbstraction(e) { } // Ifc4x3_rc1::IfcProperty::IfcProperty(std::string v1_Name, std::optional< std::string > v2_Description) : IfcPropertyAbstraction(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }; populate_derived(); } // Function implementations for IfcPropertyAbstraction std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcPropertyAbstraction::HasExternalReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyAbstraction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[831]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyAbstraction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[831]); } // Ifc4x3_rc1::IfcPropertyAbstraction::IfcPropertyAbstraction(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcPropertyAbstraction::IfcPropertyAbstraction() : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcPropertyBoundedValue ::Ifc4x3_rc1::IfcValue Ifc4x3_rc1::IfcPropertyBoundedValue::UpperBoundValue() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcValue{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcValue>(); } void Ifc4x3_rc1::IfcPropertyBoundedValue::setUpperBoundValue(const ::Ifc4x3_rc1::IfcValue& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcValue Ifc4x3_rc1::IfcPropertyBoundedValue::LowerBoundValue() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcValue{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcValue>(); } void Ifc4x3_rc1::IfcPropertyBoundedValue::setLowerBoundValue(const ::Ifc4x3_rc1::IfcValue& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcPropertyBoundedValue::Unit() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcPropertyBoundedValue::setUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcValue Ifc4x3_rc1::IfcPropertyBoundedValue::SetPointValue() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcValue{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcValue>(); } void Ifc4x3_rc1::IfcPropertyBoundedValue::setSetPointValue(const ::Ifc4x3_rc1::IfcValue& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyBoundedValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[832]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyBoundedValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[832]); } // Ifc4x3_rc1::IfcPropertyBoundedValue::IfcPropertyBoundedValue(const std::weak_ptr& e) : IfcSimpleProperty(e) { } // Ifc4x3_rc1::IfcPropertyBoundedValue::IfcPropertyBoundedValue(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcValue v3_UpperBoundValue, ::Ifc4x3_rc1::IfcValue v4_LowerBoundValue, ::Ifc4x3_rc1::IfcUnit v5_Unit, ::Ifc4x3_rc1::IfcValue v6_SetPointValue) : IfcSimpleProperty(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_UpperBoundValue) {set_attribute_value(2, (*v3_UpperBoundValue)); } if (v4_LowerBoundValue) {set_attribute_value(3, (*v4_LowerBoundValue)); } if (v5_Unit) {set_attribute_value(4, (*v5_Unit)); } if (v6_SetPointValue) {set_attribute_value(5, (*v6_SetPointValue)); }; populate_derived(); } // Function implementations for IfcPropertyDefinition std::vector<::Ifc4x3_rc1::IfcRelDeclares> Ifc4x3_rc1::IfcPropertyDefinition::HasContext() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[940], 5)); } std::vector<::Ifc4x3_rc1::IfcRelAssociates> Ifc4x3_rc1::IfcPropertyDefinition::HasAssociations() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[919], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyDefinition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[833]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyDefinition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[833]); } // Ifc4x3_rc1::IfcPropertyDefinition::IfcPropertyDefinition(const std::weak_ptr& e) : IfcRoot(e) { } // Ifc4x3_rc1::IfcPropertyDefinition::IfcPropertyDefinition(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcRoot(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcPropertyDependencyRelationship ::Ifc4x3_rc1::IfcProperty Ifc4x3_rc1::IfcPropertyDependencyRelationship::DependingProperty() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcProperty>(); } void Ifc4x3_rc1::IfcPropertyDependencyRelationship::setDependingProperty(const ::Ifc4x3_rc1::IfcProperty& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcProperty Ifc4x3_rc1::IfcPropertyDependencyRelationship::DependantProperty() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcProperty>(); } void Ifc4x3_rc1::IfcPropertyDependencyRelationship::setDependantProperty(const ::Ifc4x3_rc1::IfcProperty& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcPropertyDependencyRelationship::Expression() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcPropertyDependencyRelationship::setExpression(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyDependencyRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[834]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyDependencyRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[834]); } // Ifc4x3_rc1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcProperty v3_DependingProperty, ::Ifc4x3_rc1::IfcProperty v4_DependantProperty, std::optional< std::string > v5_Expression) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_DependingProperty));set_attribute_value(3, (v4_DependantProperty)); if (v5_Expression) {set_attribute_value(4, (*v5_Expression)); }; populate_derived(); } // Function implementations for IfcPropertyEnumeratedValue std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > Ifc4x3_rc1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcValue>(es); } void Ifc4x3_rc1::IfcPropertyEnumeratedValue::setEnumerationValues(const std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > >& v) { if (v) {set_attribute_value(2, cast_vector(*v));} else {unset_attribute_value(2);} } ::Ifc4x3_rc1::IfcPropertyEnumeration Ifc4x3_rc1::IfcPropertyEnumeratedValue::EnumerationReference() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcPropertyEnumeration{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcPropertyEnumeration>(); } void Ifc4x3_rc1::IfcPropertyEnumeratedValue::setEnumerationReference(const ::Ifc4x3_rc1::IfcPropertyEnumeration& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyEnumeratedValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[835]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyEnumeratedValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[835]); } // Ifc4x3_rc1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(const std::weak_ptr& e) : IfcSimpleProperty(e) { } // Ifc4x3_rc1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, std::optional< std::string > v2_Description, std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > v3_EnumerationValues, ::Ifc4x3_rc1::IfcPropertyEnumeration v4_EnumerationReference) : IfcSimpleProperty(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_EnumerationValues) {set_attribute_value(2, (*v3_EnumerationValues)->generalize()); } if (v4_EnumerationReference) {set_attribute_value(3, (*v4_EnumerationReference)); }; populate_derived(); } // Function implementations for IfcPropertyEnumeration std::string Ifc4x3_rc1::IfcPropertyEnumeration::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcPropertyEnumeration::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcValue > Ifc4x3_rc1::IfcPropertyEnumeration::EnumerationValues() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcValue>(es); } void Ifc4x3_rc1::IfcPropertyEnumeration::setEnumerationValues(const std::vector< ::Ifc4x3_rc1::IfcValue >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcPropertyEnumeration::Unit() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcPropertyEnumeration::setUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyEnumeration::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[836]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyEnumeration::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[836]); } // Ifc4x3_rc1::IfcPropertyEnumeration::IfcPropertyEnumeration(const std::weak_ptr& e) : IfcPropertyAbstraction(e) { } // Ifc4x3_rc1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, std::vector< ::Ifc4x3_rc1::IfcValue > v2_EnumerationValues, ::Ifc4x3_rc1::IfcUnit v3_Unit) : IfcPropertyAbstraction(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Name));set_attribute_value(1, (v2_EnumerationValues)->generalize()); if (v3_Unit) {set_attribute_value(2, (*v3_Unit)); }; populate_derived(); } // Function implementations for IfcPropertyListValue std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > Ifc4x3_rc1::IfcPropertyListValue::ListValues() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcValue>(es); } void Ifc4x3_rc1::IfcPropertyListValue::setListValues(const std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > >& v) { if (v) {set_attribute_value(2, cast_vector(*v));} else {unset_attribute_value(2);} } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcPropertyListValue::Unit() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcPropertyListValue::setUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyListValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[837]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyListValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[837]); } // Ifc4x3_rc1::IfcPropertyListValue::IfcPropertyListValue(const std::weak_ptr& e) : IfcSimpleProperty(e) { } // Ifc4x3_rc1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, std::optional< std::string > v2_Description, std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > v3_ListValues, ::Ifc4x3_rc1::IfcUnit v4_Unit) : IfcSimpleProperty(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_ListValues) {set_attribute_value(2, (*v3_ListValues)->generalize()); } if (v4_Unit) {set_attribute_value(3, (*v4_Unit)); }; populate_derived(); } // Function implementations for IfcPropertyReferenceValue std::optional< std::string > Ifc4x3_rc1::IfcPropertyReferenceValue::UsageName() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcPropertyReferenceValue::setUsageName(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } ::Ifc4x3_rc1::IfcObjectReferenceSelect Ifc4x3_rc1::IfcPropertyReferenceValue::PropertyReference() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcObjectReferenceSelect{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcObjectReferenceSelect>(); } void Ifc4x3_rc1::IfcPropertyReferenceValue::setPropertyReference(const ::Ifc4x3_rc1::IfcObjectReferenceSelect& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyReferenceValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[838]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyReferenceValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[838]); } // Ifc4x3_rc1::IfcPropertyReferenceValue::IfcPropertyReferenceValue(const std::weak_ptr& e) : IfcSimpleProperty(e) { } // Ifc4x3_rc1::IfcPropertyReferenceValue::IfcPropertyReferenceValue(std::string v1_Name, std::optional< std::string > v2_Description, std::optional< std::string > v3_UsageName, ::Ifc4x3_rc1::IfcObjectReferenceSelect v4_PropertyReference) : IfcSimpleProperty(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_UsageName) {set_attribute_value(2, (*v3_UsageName)); } if (v4_PropertyReference) {set_attribute_value(3, (*v4_PropertyReference)); }; populate_derived(); } // Function implementations for IfcPropertySet std::vector< ::Ifc4x3_rc1::IfcProperty > Ifc4x3_rc1::IfcPropertySet::HasProperties() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcProperty>(es); } void Ifc4x3_rc1::IfcPropertySet::setHasProperties(const std::vector< ::Ifc4x3_rc1::IfcProperty >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertySet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[839]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertySet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[839]); } // Ifc4x3_rc1::IfcPropertySet::IfcPropertySet(const std::weak_ptr& e) : IfcPropertySetDefinition(e) { } // Ifc4x3_rc1::IfcPropertySet::IfcPropertySet(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcProperty > v5_HasProperties) : IfcPropertySetDefinition(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_HasProperties)->generalize());; populate_derived(); } // Function implementations for IfcPropertySetDefinition std::vector<::Ifc4x3_rc1::IfcTypeObject> Ifc4x3_rc1::IfcPropertySetDefinition::DefinesType() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1245], 5)); } std::vector<::Ifc4x3_rc1::IfcRelDefinesByTemplate> Ifc4x3_rc1::IfcPropertySetDefinition::IsDefinedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[945], 4)); } std::vector<::Ifc4x3_rc1::IfcRelDefinesByProperties> Ifc4x3_rc1::IfcPropertySetDefinition::DefinesOccurrence() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[944], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertySetDefinition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[840]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertySetDefinition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[840]); } // Ifc4x3_rc1::IfcPropertySetDefinition::IfcPropertySetDefinition(const std::weak_ptr& e) : IfcPropertyDefinition(e) { } // Ifc4x3_rc1::IfcPropertySetDefinition::IfcPropertySetDefinition(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcPropertyDefinition(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcPropertySetTemplate std::optional< ::Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Value > Ifc4x3_rc1::IfcPropertySetTemplate::TemplateType() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::FromString(get_attribute_value(4)); } void Ifc4x3_rc1::IfcPropertySetTemplate::setTemplateType(const std::optional< ::Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Value >& v) { if (v) {set_attribute_value(4, EnumerationReference(&::Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcPropertySetTemplate::ApplicableEntity() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcPropertySetTemplate::setApplicableEntity(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::vector< ::Ifc4x3_rc1::IfcPropertyTemplate > Ifc4x3_rc1::IfcPropertySetTemplate::HasPropertyTemplates() const { std::vector es = get_attribute_value(6); return cast_vector<::Ifc4x3_rc1::IfcPropertyTemplate>(es); } void Ifc4x3_rc1::IfcPropertySetTemplate::setHasPropertyTemplates(const std::vector< ::Ifc4x3_rc1::IfcPropertyTemplate >& v) { set_attribute_value(6, cast_vector(v));if constexpr (false)unset_attribute_value(6); } std::vector<::Ifc4x3_rc1::IfcRelDefinesByTemplate> Ifc4x3_rc1::IfcPropertySetTemplate::Defines() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[945], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertySetTemplate::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[843]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertySetTemplate::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[843]); } // Ifc4x3_rc1::IfcPropertySetTemplate::IfcPropertySetTemplate(const std::weak_ptr& e) : IfcPropertyTemplateDefinition(e) { } // Ifc4x3_rc1::IfcPropertySetTemplate::IfcPropertySetTemplate(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< ::Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Value > v5_TemplateType, std::optional< std::string > v6_ApplicableEntity, std::vector< ::Ifc4x3_rc1::IfcPropertyTemplate > v7_HasPropertyTemplates) : IfcPropertyTemplateDefinition(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_TemplateType) {set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::Class(),(size_t)*v5_TemplateType))); } if (v6_ApplicableEntity) {set_attribute_value(5, (*v6_ApplicableEntity)); }set_attribute_value(6, (v7_HasPropertyTemplates)->generalize());; populate_derived(); } // Function implementations for IfcPropertySingleValue ::Ifc4x3_rc1::IfcValue Ifc4x3_rc1::IfcPropertySingleValue::NominalValue() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcValue{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcValue>(); } void Ifc4x3_rc1::IfcPropertySingleValue::setNominalValue(const ::Ifc4x3_rc1::IfcValue& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcPropertySingleValue::Unit() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcPropertySingleValue::setUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertySingleValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[845]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertySingleValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[845]); } // Ifc4x3_rc1::IfcPropertySingleValue::IfcPropertySingleValue(const std::weak_ptr& e) : IfcSimpleProperty(e) { } // Ifc4x3_rc1::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcValue v3_NominalValue, ::Ifc4x3_rc1::IfcUnit v4_Unit) : IfcSimpleProperty(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_NominalValue) {set_attribute_value(2, (*v3_NominalValue)); } if (v4_Unit) {set_attribute_value(3, (*v4_Unit)); }; populate_derived(); } // Function implementations for IfcPropertyTableValue std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > Ifc4x3_rc1::IfcPropertyTableValue::DefiningValues() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcValue>(es); } void Ifc4x3_rc1::IfcPropertyTableValue::setDefiningValues(const std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > >& v) { if (v) {set_attribute_value(2, cast_vector(*v));} else {unset_attribute_value(2);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > Ifc4x3_rc1::IfcPropertyTableValue::DefinedValues() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcValue>(es); } void Ifc4x3_rc1::IfcPropertyTableValue::setDefinedValues(const std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > >& v) { if (v) {set_attribute_value(3, cast_vector(*v));} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcPropertyTableValue::Expression() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcPropertyTableValue::setExpression(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcPropertyTableValue::DefiningUnit() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcPropertyTableValue::setDefiningUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcPropertyTableValue::DefinedUnit() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcPropertyTableValue::setDefinedUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< ::Ifc4x3_rc1::IfcCurveInterpolationEnum::Value > Ifc4x3_rc1::IfcPropertyTableValue::CurveInterpolation() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcCurveInterpolationEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcPropertyTableValue::setCurveInterpolation(const std::optional< ::Ifc4x3_rc1::IfcCurveInterpolationEnum::Value >& v) { if (v) {set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcCurveInterpolationEnum::Class(), (size_t) *v));} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyTableValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[846]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyTableValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[846]); } // Ifc4x3_rc1::IfcPropertyTableValue::IfcPropertyTableValue(const std::weak_ptr& e) : IfcSimpleProperty(e) { } // Ifc4x3_rc1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, std::optional< std::string > v2_Description, std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > v3_DefiningValues, std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > v4_DefinedValues, std::optional< std::string > v5_Expression, ::Ifc4x3_rc1::IfcUnit v6_DefiningUnit, ::Ifc4x3_rc1::IfcUnit v7_DefinedUnit, std::optional< ::Ifc4x3_rc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_DefiningValues) {set_attribute_value(2, (*v3_DefiningValues)->generalize()); } if (v4_DefinedValues) {set_attribute_value(3, (*v4_DefinedValues)->generalize()); } if (v5_Expression) {set_attribute_value(4, (*v5_Expression)); } if (v6_DefiningUnit) {set_attribute_value(5, (*v6_DefiningUnit)); } if (v7_DefinedUnit) {set_attribute_value(6, (*v7_DefinedUnit)); } if (v8_CurveInterpolation) {set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcCurveInterpolationEnum::Class(),(size_t)*v8_CurveInterpolation))); }; populate_derived(); } // Function implementations for IfcPropertyTemplate std::vector<::Ifc4x3_rc1::IfcComplexPropertyTemplate> Ifc4x3_rc1::IfcPropertyTemplate::PartOfComplexTemplate() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[196], 6)); } std::vector<::Ifc4x3_rc1::IfcPropertySetTemplate> Ifc4x3_rc1::IfcPropertyTemplate::PartOfPsetTemplate() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[843], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyTemplate::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[847]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyTemplate::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[847]); } // Ifc4x3_rc1::IfcPropertyTemplate::IfcPropertyTemplate(const std::weak_ptr& e) : IfcPropertyTemplateDefinition(e) { } // Ifc4x3_rc1::IfcPropertyTemplate::IfcPropertyTemplate(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcPropertyTemplateDefinition(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcPropertyTemplateDefinition // const IfcParse::entity& Ifc4x3_rc1::IfcPropertyTemplateDefinition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[848]); } const IfcParse::entity& Ifc4x3_rc1::IfcPropertyTemplateDefinition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[848]); } // Ifc4x3_rc1::IfcPropertyTemplateDefinition::IfcPropertyTemplateDefinition(const std::weak_ptr& e) : IfcPropertyDefinition(e) { } // Ifc4x3_rc1::IfcPropertyTemplateDefinition::IfcPropertyTemplateDefinition(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcPropertyDefinition(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcProtectiveDevice std::optional< ::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value > Ifc4x3_rc1::IfcProtectiveDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcProtectiveDevice::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcProtectiveDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[849]); } const IfcParse::entity& Ifc4x3_rc1::IfcProtectiveDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[849]); } // Ifc4x3_rc1::IfcProtectiveDevice::IfcProtectiveDevice(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcProtectiveDevice::IfcProtectiveDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcProtectiveDeviceTrippingUnit std::optional< ::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value > Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnit::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnit::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[850]); } const IfcParse::entity& Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[850]); } // Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnit::IfcProtectiveDeviceTrippingUnit(const std::weak_ptr& e) : IfcDistributionControlElement(e) { } // Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnit::IfcProtectiveDeviceTrippingUnit(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value > v9_PredefinedType) : IfcDistributionControlElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcProtectiveDeviceTrippingUnitType ::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitType::PredefinedType() const { return ::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitType::setPredefinedType(const ::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[851]); } const IfcParse::entity& Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[851]); } // Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitType::IfcProtectiveDeviceTrippingUnitType(const std::weak_ptr& e) : IfcDistributionControlElementType(e) { } // Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitType::IfcProtectiveDeviceTrippingUnitType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Value v10_PredefinedType) : IfcDistributionControlElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcProtectiveDeviceType ::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value Ifc4x3_rc1::IfcProtectiveDeviceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcProtectiveDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcProtectiveDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[853]); } const IfcParse::entity& Ifc4x3_rc1::IfcProtectiveDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[853]); } // Ifc4x3_rc1::IfcProtectiveDeviceType::IfcProtectiveDeviceType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcProtectiveDeviceType::IfcProtectiveDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcProxy ::Ifc4x3_rc1::IfcObjectTypeEnum::Value Ifc4x3_rc1::IfcProxy::ProxyType() const { return ::Ifc4x3_rc1::IfcObjectTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcProxy::setProxyType(const ::Ifc4x3_rc1::IfcObjectTypeEnum::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } std::optional< std::string > Ifc4x3_rc1::IfcProxy::Tag() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcProxy::setTag(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcProxy::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[855]); } const IfcParse::entity& Ifc4x3_rc1::IfcProxy::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[855]); } // Ifc4x3_rc1::IfcProxy::IfcProxy(const std::weak_ptr& e) : IfcProduct(e) { } // Ifc4x3_rc1::IfcProxy::IfcProxy(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcObjectTypeEnum::Value v8_ProxyType, std::optional< std::string > v9_Tag) : IfcProduct(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)v8_ProxyType))); if (v9_Tag) {set_attribute_value(8, (*v9_Tag)); }; populate_derived(); } // Function implementations for IfcPump std::optional< ::Ifc4x3_rc1::IfcPumpTypeEnum::Value > Ifc4x3_rc1::IfcPump::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcPumpTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcPump::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcPumpTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcPumpTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcPump::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[856]); } const IfcParse::entity& Ifc4x3_rc1::IfcPump::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[856]); } // Ifc4x3_rc1::IfcPump::IfcPump(const std::weak_ptr& e) : IfcFlowMovingDevice(e) { } // Ifc4x3_rc1::IfcPump::IfcPump(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcPumpTypeEnum::Value > v9_PredefinedType) : IfcFlowMovingDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcPumpTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcPumpType ::Ifc4x3_rc1::IfcPumpTypeEnum::Value Ifc4x3_rc1::IfcPumpType::PredefinedType() const { return ::Ifc4x3_rc1::IfcPumpTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcPumpType::setPredefinedType(const ::Ifc4x3_rc1::IfcPumpTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcPumpTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcPumpType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[857]); } const IfcParse::entity& Ifc4x3_rc1::IfcPumpType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[857]); } // Ifc4x3_rc1::IfcPumpType::IfcPumpType(const std::weak_ptr& e) : IfcFlowMovingDeviceType(e) { } // Ifc4x3_rc1::IfcPumpType::IfcPumpType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcPumpTypeEnum::Value v10_PredefinedType) : IfcFlowMovingDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcPumpTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcQuantityArea double Ifc4x3_rc1::IfcQuantityArea::AreaValue() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcQuantityArea::setAreaValue(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcQuantityArea::Formula() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcQuantityArea::setFormula(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcQuantityArea::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[859]); } const IfcParse::entity& Ifc4x3_rc1::IfcQuantityArea::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[859]); } // Ifc4x3_rc1::IfcQuantityArea::IfcQuantityArea(const std::weak_ptr& e) : IfcPhysicalSimpleQuantity(e) { } // Ifc4x3_rc1::IfcQuantityArea::IfcQuantityArea(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcNamedUnit v3_Unit, double v4_AreaValue, std::optional< std::string > v5_Formula) : IfcPhysicalSimpleQuantity(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Unit) {set_attribute_value(2, (*v3_Unit)); }set_attribute_value(3, (v4_AreaValue)); if (v5_Formula) {set_attribute_value(4, (*v5_Formula)); }; populate_derived(); } // Function implementations for IfcQuantityCount double Ifc4x3_rc1::IfcQuantityCount::CountValue() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcQuantityCount::setCountValue(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcQuantityCount::Formula() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcQuantityCount::setFormula(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcQuantityCount::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[860]); } const IfcParse::entity& Ifc4x3_rc1::IfcQuantityCount::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[860]); } // Ifc4x3_rc1::IfcQuantityCount::IfcQuantityCount(const std::weak_ptr& e) : IfcPhysicalSimpleQuantity(e) { } // Ifc4x3_rc1::IfcQuantityCount::IfcQuantityCount(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcNamedUnit v3_Unit, double v4_CountValue, std::optional< std::string > v5_Formula) : IfcPhysicalSimpleQuantity(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Unit) {set_attribute_value(2, (*v3_Unit)); }set_attribute_value(3, (v4_CountValue)); if (v5_Formula) {set_attribute_value(4, (*v5_Formula)); }; populate_derived(); } // Function implementations for IfcQuantityLength double Ifc4x3_rc1::IfcQuantityLength::LengthValue() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcQuantityLength::setLengthValue(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcQuantityLength::Formula() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcQuantityLength::setFormula(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcQuantityLength::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[861]); } const IfcParse::entity& Ifc4x3_rc1::IfcQuantityLength::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[861]); } // Ifc4x3_rc1::IfcQuantityLength::IfcQuantityLength(const std::weak_ptr& e) : IfcPhysicalSimpleQuantity(e) { } // Ifc4x3_rc1::IfcQuantityLength::IfcQuantityLength(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcNamedUnit v3_Unit, double v4_LengthValue, std::optional< std::string > v5_Formula) : IfcPhysicalSimpleQuantity(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Unit) {set_attribute_value(2, (*v3_Unit)); }set_attribute_value(3, (v4_LengthValue)); if (v5_Formula) {set_attribute_value(4, (*v5_Formula)); }; populate_derived(); } // Function implementations for IfcQuantitySet // const IfcParse::entity& Ifc4x3_rc1::IfcQuantitySet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[862]); } const IfcParse::entity& Ifc4x3_rc1::IfcQuantitySet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[862]); } // Ifc4x3_rc1::IfcQuantitySet::IfcQuantitySet(const std::weak_ptr& e) : IfcPropertySetDefinition(e) { } // Ifc4x3_rc1::IfcQuantitySet::IfcQuantitySet(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcPropertySetDefinition(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcQuantityTime double Ifc4x3_rc1::IfcQuantityTime::TimeValue() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcQuantityTime::setTimeValue(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcQuantityTime::Formula() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcQuantityTime::setFormula(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcQuantityTime::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[863]); } const IfcParse::entity& Ifc4x3_rc1::IfcQuantityTime::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[863]); } // Ifc4x3_rc1::IfcQuantityTime::IfcQuantityTime(const std::weak_ptr& e) : IfcPhysicalSimpleQuantity(e) { } // Ifc4x3_rc1::IfcQuantityTime::IfcQuantityTime(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcNamedUnit v3_Unit, double v4_TimeValue, std::optional< std::string > v5_Formula) : IfcPhysicalSimpleQuantity(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Unit) {set_attribute_value(2, (*v3_Unit)); }set_attribute_value(3, (v4_TimeValue)); if (v5_Formula) {set_attribute_value(4, (*v5_Formula)); }; populate_derived(); } // Function implementations for IfcQuantityVolume double Ifc4x3_rc1::IfcQuantityVolume::VolumeValue() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcQuantityVolume::setVolumeValue(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcQuantityVolume::Formula() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcQuantityVolume::setFormula(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcQuantityVolume::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[864]); } const IfcParse::entity& Ifc4x3_rc1::IfcQuantityVolume::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[864]); } // Ifc4x3_rc1::IfcQuantityVolume::IfcQuantityVolume(const std::weak_ptr& e) : IfcPhysicalSimpleQuantity(e) { } // Ifc4x3_rc1::IfcQuantityVolume::IfcQuantityVolume(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcNamedUnit v3_Unit, double v4_VolumeValue, std::optional< std::string > v5_Formula) : IfcPhysicalSimpleQuantity(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Unit) {set_attribute_value(2, (*v3_Unit)); }set_attribute_value(3, (v4_VolumeValue)); if (v5_Formula) {set_attribute_value(4, (*v5_Formula)); }; populate_derived(); } // Function implementations for IfcQuantityWeight double Ifc4x3_rc1::IfcQuantityWeight::WeightValue() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcQuantityWeight::setWeightValue(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcQuantityWeight::Formula() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcQuantityWeight::setFormula(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcQuantityWeight::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[865]); } const IfcParse::entity& Ifc4x3_rc1::IfcQuantityWeight::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[865]); } // Ifc4x3_rc1::IfcQuantityWeight::IfcQuantityWeight(const std::weak_ptr& e) : IfcPhysicalSimpleQuantity(e) { } // Ifc4x3_rc1::IfcQuantityWeight::IfcQuantityWeight(std::string v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcNamedUnit v3_Unit, double v4_WeightValue, std::optional< std::string > v5_Formula) : IfcPhysicalSimpleQuantity(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_Unit) {set_attribute_value(2, (*v3_Unit)); }set_attribute_value(3, (v4_WeightValue)); if (v5_Formula) {set_attribute_value(4, (*v5_Formula)); }; populate_derived(); } // Function implementations for IfcRail std::optional< ::Ifc4x3_rc1::IfcRailTypeEnum::Value > Ifc4x3_rc1::IfcRail::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcRailTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcRail::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcRailTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcRailTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRail::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[867]); } const IfcParse::entity& Ifc4x3_rc1::IfcRail::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[867]); } // Ifc4x3_rc1::IfcRail::IfcRail(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcRail::IfcRail(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcRailTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcRailTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcRailType ::Ifc4x3_rc1::IfcRailTypeEnum::Value Ifc4x3_rc1::IfcRailType::PredefinedType() const { return ::Ifc4x3_rc1::IfcRailTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcRailType::setPredefinedType(const ::Ifc4x3_rc1::IfcRailTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcRailTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcRailType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[871]); } const IfcParse::entity& Ifc4x3_rc1::IfcRailType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[871]); } // Ifc4x3_rc1::IfcRailType::IfcRailType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcRailType::IfcRailType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcRailTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcRailTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcRailing std::optional< ::Ifc4x3_rc1::IfcRailingTypeEnum::Value > Ifc4x3_rc1::IfcRailing::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcRailingTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcRailing::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcRailingTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcRailingTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRailing::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[868]); } const IfcParse::entity& Ifc4x3_rc1::IfcRailing::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[868]); } // Ifc4x3_rc1::IfcRailing::IfcRailing(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcRailing::IfcRailing(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcRailingTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcRailingTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcRailingType ::Ifc4x3_rc1::IfcRailingTypeEnum::Value Ifc4x3_rc1::IfcRailingType::PredefinedType() const { return ::Ifc4x3_rc1::IfcRailingTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcRailingType::setPredefinedType(const ::Ifc4x3_rc1::IfcRailingTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcRailingTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcRailingType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[869]); } const IfcParse::entity& Ifc4x3_rc1::IfcRailingType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[869]); } // Ifc4x3_rc1::IfcRailingType::IfcRailingType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcRailingType::IfcRailingType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcRailingTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcRailingTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcRailway // const IfcParse::entity& Ifc4x3_rc1::IfcRailway::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[873]); } const IfcParse::entity& Ifc4x3_rc1::IfcRailway::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[873]); } // Ifc4x3_rc1::IfcRailway::IfcRailway(const std::weak_ptr& e) : IfcFacility(e) { } // Ifc4x3_rc1::IfcRailway::IfcRailway(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType) : IfcFacility(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); }; populate_derived(); } // Function implementations for IfcRamp std::optional< ::Ifc4x3_rc1::IfcRampTypeEnum::Value > Ifc4x3_rc1::IfcRamp::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcRampTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcRamp::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcRampTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcRampTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRamp::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[875]); } const IfcParse::entity& Ifc4x3_rc1::IfcRamp::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[875]); } // Ifc4x3_rc1::IfcRamp::IfcRamp(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcRamp::IfcRamp(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcRampTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcRampTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcRampFlight std::optional< ::Ifc4x3_rc1::IfcRampFlightTypeEnum::Value > Ifc4x3_rc1::IfcRampFlight::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcRampFlightTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcRampFlight::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcRampFlightTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcRampFlightTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRampFlight::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[876]); } const IfcParse::entity& Ifc4x3_rc1::IfcRampFlight::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[876]); } // Ifc4x3_rc1::IfcRampFlight::IfcRampFlight(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcRampFlight::IfcRampFlight(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcRampFlightTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcRampFlightTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcRampFlightType ::Ifc4x3_rc1::IfcRampFlightTypeEnum::Value Ifc4x3_rc1::IfcRampFlightType::PredefinedType() const { return ::Ifc4x3_rc1::IfcRampFlightTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcRampFlightType::setPredefinedType(const ::Ifc4x3_rc1::IfcRampFlightTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcRampFlightTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcRampFlightType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[877]); } const IfcParse::entity& Ifc4x3_rc1::IfcRampFlightType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[877]); } // Ifc4x3_rc1::IfcRampFlightType::IfcRampFlightType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcRampFlightType::IfcRampFlightType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcRampFlightTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcRampFlightTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcRampType ::Ifc4x3_rc1::IfcRampTypeEnum::Value Ifc4x3_rc1::IfcRampType::PredefinedType() const { return ::Ifc4x3_rc1::IfcRampTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcRampType::setPredefinedType(const ::Ifc4x3_rc1::IfcRampTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcRampTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcRampType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[879]); } const IfcParse::entity& Ifc4x3_rc1::IfcRampType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[879]); } // Ifc4x3_rc1::IfcRampType::IfcRampType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcRampType::IfcRampType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcRampTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcRampTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcRationalBSplineCurveWithKnots std::vector< double > /*[2:?]*/ Ifc4x3_rc1::IfcRationalBSplineCurveWithKnots::WeightsData() const { std::vector< double > /*[2:?]*/ v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcRationalBSplineCurveWithKnots::setWeightsData(const std::vector< double > /*[2:?]*/& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcRationalBSplineCurveWithKnots::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[882]); } const IfcParse::entity& Ifc4x3_rc1::IfcRationalBSplineCurveWithKnots::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[882]); } // Ifc4x3_rc1::IfcRationalBSplineCurveWithKnots::IfcRationalBSplineCurveWithKnots(const std::weak_ptr& e) : IfcBSplineCurveWithKnots(e) { } // Ifc4x3_rc1::IfcRationalBSplineCurveWithKnots::IfcRationalBSplineCurveWithKnots(int v1_Degree, std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > v2_ControlPointsList, ::Ifc4x3_rc1::IfcBSplineCurveForm::Value v3_CurveForm, boost::logic::tribool v4_ClosedCurve, boost::logic::tribool v5_SelfIntersect, std::vector< int > /*[2:?]*/ v6_KnotMultiplicities, std::vector< double > /*[2:?]*/ v7_Knots, ::Ifc4x3_rc1::IfcKnotType::Value v8_KnotSpec, std::vector< double > /*[2:?]*/ v9_WeightsData) : IfcBSplineCurveWithKnots(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_Degree));set_attribute_value(1, (v2_ControlPointsList)->generalize());set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcBSplineCurveForm::Class(),(size_t)v3_CurveForm)));set_attribute_value(3, (v4_ClosedCurve));set_attribute_value(4, (v5_SelfIntersect));set_attribute_value(5, (v6_KnotMultiplicities));set_attribute_value(6, (v7_Knots));set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcKnotType::Class(),(size_t)v8_KnotSpec)));set_attribute_value(8, (v9_WeightsData));; populate_derived(); } // Function implementations for IfcRationalBSplineSurfaceWithKnots std::vector< std::vector< double > > Ifc4x3_rc1::IfcRationalBSplineSurfaceWithKnots::WeightsData() const { std::vector< std::vector< double > > v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcRationalBSplineSurfaceWithKnots::setWeightsData(const std::vector< std::vector< double > >& v) { set_attribute_value(12, v);if constexpr (false)unset_attribute_value(12); } // const IfcParse::entity& Ifc4x3_rc1::IfcRationalBSplineSurfaceWithKnots::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[883]); } const IfcParse::entity& Ifc4x3_rc1::IfcRationalBSplineSurfaceWithKnots::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[883]); } // Ifc4x3_rc1::IfcRationalBSplineSurfaceWithKnots::IfcRationalBSplineSurfaceWithKnots(const std::weak_ptr& e) : IfcBSplineSurfaceWithKnots(e) { } // Ifc4x3_rc1::IfcRationalBSplineSurfaceWithKnots::IfcRationalBSplineSurfaceWithKnots(int v1_UDegree, int v2_VDegree, std::vector< std::vector< ::Ifc4x3_rc1::IfcCartesianPoint > > v3_ControlPointsList, ::Ifc4x3_rc1::IfcBSplineSurfaceForm::Value v4_SurfaceForm, boost::logic::tribool v5_UClosed, boost::logic::tribool v6_VClosed, boost::logic::tribool v7_SelfIntersect, std::vector< int > /*[2:?]*/ v8_UMultiplicities, std::vector< int > /*[2:?]*/ v9_VMultiplicities, std::vector< double > /*[2:?]*/ v10_UKnots, std::vector< double > /*[2:?]*/ v11_VKnots, ::Ifc4x3_rc1::IfcKnotType::Value v12_KnotSpec, std::vector< std::vector< double > > v13_WeightsData) : IfcBSplineSurfaceWithKnots(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_UDegree));set_attribute_value(1, (v2_VDegree));set_attribute_value(2, (v3_ControlPointsList)->generalize());set_attribute_value(3, (EnumerationReference(&::Ifc4x3_rc1::IfcBSplineSurfaceForm::Class(),(size_t)v4_SurfaceForm)));set_attribute_value(4, (v5_UClosed));set_attribute_value(5, (v6_VClosed));set_attribute_value(6, (v7_SelfIntersect));set_attribute_value(7, (v8_UMultiplicities));set_attribute_value(8, (v9_VMultiplicities));set_attribute_value(9, (v10_UKnots));set_attribute_value(10, (v11_VKnots));set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcKnotType::Class(),(size_t)v12_KnotSpec)));set_attribute_value(12, (v13_WeightsData));; populate_derived(); } // Function implementations for IfcRectangleHollowProfileDef double Ifc4x3_rc1::IfcRectangleHollowProfileDef::WallThickness() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcRectangleHollowProfileDef::setWallThickness(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } std::optional< double > Ifc4x3_rc1::IfcRectangleHollowProfileDef::InnerFilletRadius() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcRectangleHollowProfileDef::setInnerFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< double > Ifc4x3_rc1::IfcRectangleHollowProfileDef::OuterFilletRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcRectangleHollowProfileDef::setOuterFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRectangleHollowProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[885]); } const IfcParse::entity& Ifc4x3_rc1::IfcRectangleHollowProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[885]); } // Ifc4x3_rc1::IfcRectangleHollowProfileDef::IfcRectangleHollowProfileDef(const std::weak_ptr& e) : IfcRectangleProfileDef(e) { } // Ifc4x3_rc1::IfcRectangleHollowProfileDef::IfcRectangleHollowProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_XDim, double v5_YDim, double v6_WallThickness, std::optional< double > v7_InnerFilletRadius, std::optional< double > v8_OuterFilletRadius) : IfcRectangleProfileDef(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_XDim));set_attribute_value(4, (v5_YDim));set_attribute_value(5, (v6_WallThickness)); if (v7_InnerFilletRadius) {set_attribute_value(6, (*v7_InnerFilletRadius)); } if (v8_OuterFilletRadius) {set_attribute_value(7, (*v8_OuterFilletRadius)); }; populate_derived(); } // Function implementations for IfcRectangleProfileDef double Ifc4x3_rc1::IfcRectangleProfileDef::XDim() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcRectangleProfileDef::setXDim(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcRectangleProfileDef::YDim() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcRectangleProfileDef::setYDim(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcRectangleProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[886]); } const IfcParse::entity& Ifc4x3_rc1::IfcRectangleProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[886]); } // Ifc4x3_rc1::IfcRectangleProfileDef::IfcRectangleProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcRectangleProfileDef::IfcRectangleProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_XDim, double v5_YDim) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_XDim));set_attribute_value(4, (v5_YDim));; populate_derived(); } // Function implementations for IfcRectangularPyramid double Ifc4x3_rc1::IfcRectangularPyramid::XLength() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcRectangularPyramid::setXLength(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcRectangularPyramid::YLength() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcRectangularPyramid::setYLength(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcRectangularPyramid::Height() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcRectangularPyramid::setHeight(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcRectangularPyramid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[887]); } const IfcParse::entity& Ifc4x3_rc1::IfcRectangularPyramid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[887]); } // Ifc4x3_rc1::IfcRectangularPyramid::IfcRectangularPyramid(const std::weak_ptr& e) : IfcCsgPrimitive3D(e) { } // Ifc4x3_rc1::IfcRectangularPyramid::IfcRectangularPyramid(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position, double v2_XLength, double v3_YLength, double v4_Height) : IfcCsgPrimitive3D(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_XLength));set_attribute_value(2, (v3_YLength));set_attribute_value(3, (v4_Height));; populate_derived(); } // Function implementations for IfcRectangularTrimmedSurface ::Ifc4x3_rc1::IfcSurface Ifc4x3_rc1::IfcRectangularTrimmedSurface::BasisSurface() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcSurface>(); } void Ifc4x3_rc1::IfcRectangularTrimmedSurface::setBasisSurface(const ::Ifc4x3_rc1::IfcSurface& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcRectangularTrimmedSurface::U1() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcRectangularTrimmedSurface::setU1(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcRectangularTrimmedSurface::V1() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcRectangularTrimmedSurface::setV1(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcRectangularTrimmedSurface::U2() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcRectangularTrimmedSurface::setU2(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcRectangularTrimmedSurface::V2() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcRectangularTrimmedSurface::setV2(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } bool Ifc4x3_rc1::IfcRectangularTrimmedSurface::Usense() const { bool v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcRectangularTrimmedSurface::setUsense(const bool& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } bool Ifc4x3_rc1::IfcRectangularTrimmedSurface::Vsense() const { bool v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcRectangularTrimmedSurface::setVsense(const bool& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcRectangularTrimmedSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[888]); } const IfcParse::entity& Ifc4x3_rc1::IfcRectangularTrimmedSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[888]); } // Ifc4x3_rc1::IfcRectangularTrimmedSurface::IfcRectangularTrimmedSurface(const std::weak_ptr& e) : IfcBoundedSurface(e) { } // Ifc4x3_rc1::IfcRectangularTrimmedSurface::IfcRectangularTrimmedSurface(::Ifc4x3_rc1::IfcSurface v1_BasisSurface, double v2_U1, double v3_V1, double v4_U2, double v5_V2, bool v6_Usense, bool v7_Vsense) : IfcBoundedSurface(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_BasisSurface));set_attribute_value(1, (v2_U1));set_attribute_value(2, (v3_V1));set_attribute_value(3, (v4_U2));set_attribute_value(4, (v5_V2));set_attribute_value(5, (v6_Usense));set_attribute_value(6, (v7_Vsense));; populate_derived(); } // Function implementations for IfcRecurrencePattern ::Ifc4x3_rc1::IfcRecurrenceTypeEnum::Value Ifc4x3_rc1::IfcRecurrencePattern::RecurrenceType() const { return ::Ifc4x3_rc1::IfcRecurrenceTypeEnum::FromString(get_attribute_value(0)); } void Ifc4x3_rc1::IfcRecurrencePattern::setRecurrenceType(const ::Ifc4x3_rc1::IfcRecurrenceTypeEnum::Value& v) { set_attribute_value(0, EnumerationReference(&::Ifc4x3_rc1::IfcRecurrenceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(0); } std::optional< std::vector< int > /*[1:?]*/ > Ifc4x3_rc1::IfcRecurrencePattern::DayComponent() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::vector< int > /*[1:?]*/ v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcRecurrencePattern::setDayComponent(const std::optional< std::vector< int > /*[1:?]*/ >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::vector< int > /*[1:?]*/ > Ifc4x3_rc1::IfcRecurrencePattern::WeekdayComponent() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector< int > /*[1:?]*/ v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcRecurrencePattern::setWeekdayComponent(const std::optional< std::vector< int > /*[1:?]*/ >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::vector< int > /*[1:?]*/ > Ifc4x3_rc1::IfcRecurrencePattern::MonthComponent() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::vector< int > /*[1:?]*/ v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcRecurrencePattern::setMonthComponent(const std::optional< std::vector< int > /*[1:?]*/ >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< int > Ifc4x3_rc1::IfcRecurrencePattern::Position() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } int v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcRecurrencePattern::setPosition(const std::optional< int >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< int > Ifc4x3_rc1::IfcRecurrencePattern::Interval() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } int v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcRecurrencePattern::setInterval(const std::optional< int >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< int > Ifc4x3_rc1::IfcRecurrencePattern::Occurrences() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } int v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcRecurrencePattern::setOccurrences(const std::optional< int >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcTimePeriod > > Ifc4x3_rc1::IfcRecurrencePattern::TimePeriods() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcTimePeriod>(es); } void Ifc4x3_rc1::IfcRecurrencePattern::setTimePeriods(const std::optional< std::vector< ::Ifc4x3_rc1::IfcTimePeriod > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRecurrencePattern::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[889]); } const IfcParse::entity& Ifc4x3_rc1::IfcRecurrencePattern::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[889]); } // Ifc4x3_rc1::IfcRecurrencePattern::IfcRecurrencePattern(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcRecurrencePattern::IfcRecurrencePattern(::Ifc4x3_rc1::IfcRecurrenceTypeEnum::Value v1_RecurrenceType, std::optional< std::vector< int > /*[1:?]*/ > v2_DayComponent, std::optional< std::vector< int > /*[1:?]*/ > v3_WeekdayComponent, std::optional< std::vector< int > /*[1:?]*/ > v4_MonthComponent, std::optional< int > v5_Position, std::optional< int > v6_Interval, std::optional< int > v7_Occurrences, std::optional< std::vector< ::Ifc4x3_rc1::IfcTimePeriod > > v8_TimePeriods) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcRecurrenceTypeEnum::Class(),(size_t)v1_RecurrenceType))); if (v2_DayComponent) {set_attribute_value(1, (*v2_DayComponent)); } if (v3_WeekdayComponent) {set_attribute_value(2, (*v3_WeekdayComponent)); } if (v4_MonthComponent) {set_attribute_value(3, (*v4_MonthComponent)); } if (v5_Position) {set_attribute_value(4, (*v5_Position)); } if (v6_Interval) {set_attribute_value(5, (*v6_Interval)); } if (v7_Occurrences) {set_attribute_value(6, (*v7_Occurrences)); } if (v8_TimePeriods) {set_attribute_value(7, (*v8_TimePeriods)->generalize()); }; populate_derived(); } // Function implementations for IfcReference std::optional< std::string > Ifc4x3_rc1::IfcReference::TypeIdentifier() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcReference::setTypeIdentifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcReference::AttributeIdentifier() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcReference::setAttributeIdentifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcReference::InstanceName() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcReference::setInstanceName(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::vector< int > /*[1:?]*/ > Ifc4x3_rc1::IfcReference::ListPositions() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::vector< int > /*[1:?]*/ v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcReference::setListPositions(const std::optional< std::vector< int > /*[1:?]*/ >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } ::Ifc4x3_rc1::IfcReference Ifc4x3_rc1::IfcReference::InnerReference() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcReference{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcReference>(); } void Ifc4x3_rc1::IfcReference::setInnerReference(const ::Ifc4x3_rc1::IfcReference& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcReference::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[891]); } const IfcParse::entity& Ifc4x3_rc1::IfcReference::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[891]); } // Ifc4x3_rc1::IfcReference::IfcReference(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcReference::IfcReference(std::optional< std::string > v1_TypeIdentifier, std::optional< std::string > v2_AttributeIdentifier, std::optional< std::string > v3_InstanceName, std::optional< std::vector< int > /*[1:?]*/ > v4_ListPositions, ::Ifc4x3_rc1::IfcReference v5_InnerReference) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_TypeIdentifier) {set_attribute_value(0, (*v1_TypeIdentifier)); } if (v2_AttributeIdentifier) {set_attribute_value(1, (*v2_AttributeIdentifier)); } if (v3_InstanceName) {set_attribute_value(2, (*v3_InstanceName)); } if (v4_ListPositions) {set_attribute_value(3, (*v4_ListPositions)); } if (v5_InnerReference) {set_attribute_value(4, (*v5_InnerReference)); }; populate_derived(); } // Function implementations for IfcReferent std::optional< ::Ifc4x3_rc1::IfcReferentTypeEnum::Value > Ifc4x3_rc1::IfcReferent::PredefinedType() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcReferentTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcReferent::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcReferentTypeEnum::Value >& v) { if (v) {set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcReferentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcReferent::RestartDistance() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcReferent::setRestartDistance(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcReferent::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[892]); } const IfcParse::entity& Ifc4x3_rc1::IfcReferent::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[892]); } // Ifc4x3_rc1::IfcReferent::IfcReferent(const std::weak_ptr& e) : IfcPositioningElement(e) { } // Ifc4x3_rc1::IfcReferent::IfcReferent(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< ::Ifc4x3_rc1::IfcReferentTypeEnum::Value > v8_PredefinedType, std::optional< double > v9_RestartDistance) : IfcPositioningElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_PredefinedType) {set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcReferentTypeEnum::Class(),(size_t)*v8_PredefinedType))); } if (v9_RestartDistance) {set_attribute_value(8, (*v9_RestartDistance)); }; populate_derived(); } // Function implementations for IfcRegularTimeSeries double Ifc4x3_rc1::IfcRegularTimeSeries::TimeStep() const { double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcRegularTimeSeries::setTimeStep(const double& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } std::vector< ::Ifc4x3_rc1::IfcTimeSeriesValue > Ifc4x3_rc1::IfcRegularTimeSeries::Values() const { std::vector es = get_attribute_value(9); return cast_vector<::Ifc4x3_rc1::IfcTimeSeriesValue>(es); } void Ifc4x3_rc1::IfcRegularTimeSeries::setValues(const std::vector< ::Ifc4x3_rc1::IfcTimeSeriesValue >& v) { set_attribute_value(9, cast_vector(v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcRegularTimeSeries::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[895]); } const IfcParse::entity& Ifc4x3_rc1::IfcRegularTimeSeries::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[895]); } // Ifc4x3_rc1::IfcRegularTimeSeries::IfcRegularTimeSeries(const std::weak_ptr& e) : IfcTimeSeries(e) { } // Ifc4x3_rc1::IfcRegularTimeSeries::IfcRegularTimeSeries(std::string v1_Name, std::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_rc1::IfcDataOriginEnum::Value v6_DataOrigin, std::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_rc1::IfcUnit v8_Unit, double v9_TimeStep, std::vector< ::Ifc4x3_rc1::IfcTimeSeriesValue > v10_Values) : IfcTimeSeries(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_StartTime));set_attribute_value(3, (v4_EndTime));set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Class(),(size_t)v5_TimeSeriesDataType)));set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)v6_DataOrigin))); if (v7_UserDefinedDataOrigin) {set_attribute_value(6, (*v7_UserDefinedDataOrigin)); } if (v8_Unit) {set_attribute_value(7, (*v8_Unit)); }set_attribute_value(8, (v9_TimeStep));set_attribute_value(9, (v10_Values)->generalize());; populate_derived(); } // Function implementations for IfcReinforcedSoil std::optional< ::Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Value > Ifc4x3_rc1::IfcReinforcedSoil::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcReinforcedSoil::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcedSoil::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[896]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcedSoil::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[896]); } // Ifc4x3_rc1::IfcReinforcedSoil::IfcReinforcedSoil(const std::weak_ptr& e) : IfcEarthworksElement(e) { } // Ifc4x3_rc1::IfcReinforcedSoil::IfcReinforcedSoil(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Value > v9_PredefinedType) : IfcEarthworksElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcReinforcementBarProperties double Ifc4x3_rc1::IfcReinforcementBarProperties::TotalCrossSectionArea() const { double v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcReinforcementBarProperties::setTotalCrossSectionArea(const double& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::string Ifc4x3_rc1::IfcReinforcementBarProperties::SteelGrade() const { std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcReinforcementBarProperties::setSteelGrade(const std::string& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_rc1::IfcReinforcementBarProperties::BarSurface() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::FromString(get_attribute_value(2)); } void Ifc4x3_rc1::IfcReinforcementBarProperties::setBarSurface(const std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value >& v) { if (v) {set_attribute_value(2, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Class(), (size_t) *v));} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcReinforcementBarProperties::EffectiveDepth() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcReinforcementBarProperties::setEffectiveDepth(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcReinforcementBarProperties::NominalBarDiameter() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcReinforcementBarProperties::setNominalBarDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< double > Ifc4x3_rc1::IfcReinforcementBarProperties::BarCount() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcReinforcementBarProperties::setBarCount(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcementBarProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[898]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcementBarProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[898]); } // Ifc4x3_rc1::IfcReinforcementBarProperties::IfcReinforcementBarProperties(const std::weak_ptr& e) : IfcPreDefinedProperties(e) { } // Ifc4x3_rc1::IfcReinforcementBarProperties::IfcReinforcementBarProperties(double v1_TotalCrossSectionArea, std::string v2_SteelGrade, std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v3_BarSurface, std::optional< double > v4_EffectiveDepth, std::optional< double > v5_NominalBarDiameter, std::optional< double > v6_BarCount) : IfcPreDefinedProperties(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_TotalCrossSectionArea));set_attribute_value(1, (v2_SteelGrade)); if (v3_BarSurface) {set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Class(),(size_t)*v3_BarSurface))); } if (v4_EffectiveDepth) {set_attribute_value(3, (*v4_EffectiveDepth)); } if (v5_NominalBarDiameter) {set_attribute_value(4, (*v5_NominalBarDiameter)); } if (v6_BarCount) {set_attribute_value(5, (*v6_BarCount)); }; populate_derived(); } // Function implementations for IfcReinforcementDefinitionProperties std::optional< std::string > Ifc4x3_rc1::IfcReinforcementDefinitionProperties::DefinitionType() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcReinforcementDefinitionProperties::setDefinitionType(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::vector< ::Ifc4x3_rc1::IfcSectionReinforcementProperties > Ifc4x3_rc1::IfcReinforcementDefinitionProperties::ReinforcementSectionDefinitions() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcSectionReinforcementProperties>(es); } void Ifc4x3_rc1::IfcReinforcementDefinitionProperties::setReinforcementSectionDefinitions(const std::vector< ::Ifc4x3_rc1::IfcSectionReinforcementProperties >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcementDefinitionProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[899]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcementDefinitionProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[899]); } // Ifc4x3_rc1::IfcReinforcementDefinitionProperties::IfcReinforcementDefinitionProperties(const std::weak_ptr& e) : IfcPreDefinedPropertySet(e) { } // Ifc4x3_rc1::IfcReinforcementDefinitionProperties::IfcReinforcementDefinitionProperties(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_DefinitionType, std::vector< ::Ifc4x3_rc1::IfcSectionReinforcementProperties > v6_ReinforcementSectionDefinitions) : IfcPreDefinedPropertySet(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_DefinitionType) {set_attribute_value(4, (*v5_DefinitionType)); }set_attribute_value(5, (v6_ReinforcementSectionDefinitions)->generalize());; populate_derived(); } // Function implementations for IfcReinforcingBar std::optional< double > Ifc4x3_rc1::IfcReinforcingBar::NominalDiameter() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcReinforcingBar::setNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingBar::CrossSectionArea() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcReinforcingBar::setCrossSectionArea(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingBar::BarLength() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcReinforcingBar::setBarLength(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value > Ifc4x3_rc1::IfcReinforcingBar::PredefinedType() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::FromString(get_attribute_value(12)); } void Ifc4x3_rc1::IfcReinforcingBar::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value >& v) { if (v) {set_attribute_value(12, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(12);} } std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_rc1::IfcReinforcingBar::BarSurface() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::FromString(get_attribute_value(13)); } void Ifc4x3_rc1::IfcReinforcingBar::setBarSurface(const std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value >& v) { if (v) {set_attribute_value(13, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Class(), (size_t) *v));} else {unset_attribute_value(13);} } // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingBar::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[900]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingBar::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[900]); } // Ifc4x3_rc1::IfcReinforcingBar::IfcReinforcingBar(const std::weak_ptr& e) : IfcReinforcingElement(e) { } // Ifc4x3_rc1::IfcReinforcingBar::IfcReinforcingBar(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< std::string > v9_SteelGrade, std::optional< double > v10_NominalDiameter, std::optional< double > v11_CrossSectionArea, std::optional< double > v12_BarLength, std::optional< ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value > v13_PredefinedType, std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface) : IfcReinforcingElement(const std::weak_ptr&(in_memory_attribute_storage(14))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_SteelGrade) {set_attribute_value(8, (*v9_SteelGrade)); } if (v10_NominalDiameter) {set_attribute_value(9, (*v10_NominalDiameter)); } if (v11_CrossSectionArea) {set_attribute_value(10, (*v11_CrossSectionArea)); } if (v12_BarLength) {set_attribute_value(11, (*v12_BarLength)); } if (v13_PredefinedType) {set_attribute_value(12, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Class(),(size_t)*v13_PredefinedType))); } if (v14_BarSurface) {set_attribute_value(13, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Class(),(size_t)*v14_BarSurface))); }; populate_derived(); } // Function implementations for IfcReinforcingBarType ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value Ifc4x3_rc1::IfcReinforcingBarType::PredefinedType() const { return ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcReinforcingBarType::setPredefinedType(const ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< double > Ifc4x3_rc1::IfcReinforcingBarType::NominalDiameter() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcReinforcingBarType::setNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingBarType::CrossSectionArea() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcReinforcingBarType::setCrossSectionArea(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingBarType::BarLength() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcReinforcingBarType::setBarLength(const std::optional< double >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_rc1::IfcReinforcingBarType::BarSurface() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::FromString(get_attribute_value(13)); } void Ifc4x3_rc1::IfcReinforcingBarType::setBarSurface(const std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value >& v) { if (v) {set_attribute_value(13, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Class(), (size_t) *v));} else {unset_attribute_value(13);} } std::optional< std::string > Ifc4x3_rc1::IfcReinforcingBarType::BendingShapeCode() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } std::string v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcReinforcingBarType::setBendingShapeCode(const std::optional< std::string >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcBendingParameterSelect > > Ifc4x3_rc1::IfcReinforcingBarType::BendingParameters() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(15); return cast_vector<::Ifc4x3_rc1::IfcBendingParameterSelect>(es); } void Ifc4x3_rc1::IfcReinforcingBarType::setBendingParameters(const std::optional< std::vector< ::Ifc4x3_rc1::IfcBendingParameterSelect > >& v) { if (v) {set_attribute_value(15, cast_vector(*v));} else {unset_attribute_value(15);} } // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingBarType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[903]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingBarType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[903]); } // Ifc4x3_rc1::IfcReinforcingBarType::IfcReinforcingBarType(const std::weak_ptr& e) : IfcReinforcingElementType(e) { } // Ifc4x3_rc1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, std::optional< double > v11_NominalDiameter, std::optional< double > v12_CrossSectionArea, std::optional< double > v13_BarLength, std::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, std::optional< std::string > v15_BendingShapeCode, std::optional< std::vector< ::Ifc4x3_rc1::IfcBendingParameterSelect > > v16_BendingParameters) : IfcReinforcingElementType(const std::weak_ptr&(in_memory_attribute_storage(16))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Class(),(size_t)v10_PredefinedType))); if (v11_NominalDiameter) {set_attribute_value(10, (*v11_NominalDiameter)); } if (v12_CrossSectionArea) {set_attribute_value(11, (*v12_CrossSectionArea)); } if (v13_BarLength) {set_attribute_value(12, (*v13_BarLength)); } if (v14_BarSurface) {set_attribute_value(13, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Class(),(size_t)*v14_BarSurface))); } if (v15_BendingShapeCode) {set_attribute_value(14, (*v15_BendingShapeCode)); } if (v16_BendingParameters) {set_attribute_value(15, (*v16_BendingParameters)->generalize()); }; populate_derived(); } // Function implementations for IfcReinforcingElement std::optional< std::string > Ifc4x3_rc1::IfcReinforcingElement::SteelGrade() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcReinforcingElement::setSteelGrade(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[905]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[905]); } // Ifc4x3_rc1::IfcReinforcingElement::IfcReinforcingElement(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcReinforcingElement::IfcReinforcingElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< std::string > v9_SteelGrade) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_SteelGrade) {set_attribute_value(8, (*v9_SteelGrade)); }; populate_derived(); } // Function implementations for IfcReinforcingElementType // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[906]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[906]); } // Ifc4x3_rc1::IfcReinforcingElementType::IfcReinforcingElementType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcReinforcingElementType::IfcReinforcingElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcReinforcingMesh std::optional< double > Ifc4x3_rc1::IfcReinforcingMesh::MeshLength() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcReinforcingMesh::setMeshLength(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMesh::MeshWidth() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcReinforcingMesh::setMeshWidth(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMesh::LongitudinalBarNominalDiameter() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcReinforcingMesh::setLongitudinalBarNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMesh::TransverseBarNominalDiameter() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcReinforcingMesh::setTransverseBarNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMesh::LongitudinalBarCrossSectionArea() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } double v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcReinforcingMesh::setLongitudinalBarCrossSectionArea(const std::optional< double >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMesh::TransverseBarCrossSectionArea() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } double v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcReinforcingMesh::setTransverseBarCrossSectionArea(const std::optional< double >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMesh::LongitudinalBarSpacing() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } double v = get_attribute_value(15); return v; } void Ifc4x3_rc1::IfcReinforcingMesh::setLongitudinalBarSpacing(const std::optional< double >& v) { if (v) {set_attribute_value(15, *v);} else {unset_attribute_value(15);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMesh::TransverseBarSpacing() const { if(get_attribute_value(16).isNull()) { return std::nullopt; } double v = get_attribute_value(16); return v; } void Ifc4x3_rc1::IfcReinforcingMesh::setTransverseBarSpacing(const std::optional< double >& v) { if (v) {set_attribute_value(16, *v);} else {unset_attribute_value(16);} } std::optional< ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value > Ifc4x3_rc1::IfcReinforcingMesh::PredefinedType() const { if(get_attribute_value(17).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::FromString(get_attribute_value(17)); } void Ifc4x3_rc1::IfcReinforcingMesh::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value >& v) { if (v) {set_attribute_value(17, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(17);} } // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingMesh::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[907]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingMesh::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[907]); } // Ifc4x3_rc1::IfcReinforcingMesh::IfcReinforcingMesh(const std::weak_ptr& e) : IfcReinforcingElement(e) { } // Ifc4x3_rc1::IfcReinforcingMesh::IfcReinforcingMesh(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< std::string > v9_SteelGrade, std::optional< double > v10_MeshLength, std::optional< double > v11_MeshWidth, std::optional< double > v12_LongitudinalBarNominalDiameter, std::optional< double > v13_TransverseBarNominalDiameter, std::optional< double > v14_LongitudinalBarCrossSectionArea, std::optional< double > v15_TransverseBarCrossSectionArea, std::optional< double > v16_LongitudinalBarSpacing, std::optional< double > v17_TransverseBarSpacing, std::optional< ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value > v18_PredefinedType) : IfcReinforcingElement(const std::weak_ptr&(in_memory_attribute_storage(18))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_SteelGrade) {set_attribute_value(8, (*v9_SteelGrade)); } if (v10_MeshLength) {set_attribute_value(9, (*v10_MeshLength)); } if (v11_MeshWidth) {set_attribute_value(10, (*v11_MeshWidth)); } if (v12_LongitudinalBarNominalDiameter) {set_attribute_value(11, (*v12_LongitudinalBarNominalDiameter)); } if (v13_TransverseBarNominalDiameter) {set_attribute_value(12, (*v13_TransverseBarNominalDiameter)); } if (v14_LongitudinalBarCrossSectionArea) {set_attribute_value(13, (*v14_LongitudinalBarCrossSectionArea)); } if (v15_TransverseBarCrossSectionArea) {set_attribute_value(14, (*v15_TransverseBarCrossSectionArea)); } if (v16_LongitudinalBarSpacing) {set_attribute_value(15, (*v16_LongitudinalBarSpacing)); } if (v17_TransverseBarSpacing) {set_attribute_value(16, (*v17_TransverseBarSpacing)); } if (v18_PredefinedType) {set_attribute_value(17, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Class(),(size_t)*v18_PredefinedType))); }; populate_derived(); } // Function implementations for IfcReinforcingMeshType ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value Ifc4x3_rc1::IfcReinforcingMeshType::PredefinedType() const { return ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcReinforcingMeshType::setPredefinedType(const ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::MeshLength() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setMeshLength(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::MeshWidth() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setMeshWidth(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::LongitudinalBarNominalDiameter() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setLongitudinalBarNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::TransverseBarNominalDiameter() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } double v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setTransverseBarNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::LongitudinalBarCrossSectionArea() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } double v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setLongitudinalBarCrossSectionArea(const std::optional< double >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::TransverseBarCrossSectionArea() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } double v = get_attribute_value(15); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setTransverseBarCrossSectionArea(const std::optional< double >& v) { if (v) {set_attribute_value(15, *v);} else {unset_attribute_value(15);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::LongitudinalBarSpacing() const { if(get_attribute_value(16).isNull()) { return std::nullopt; } double v = get_attribute_value(16); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setLongitudinalBarSpacing(const std::optional< double >& v) { if (v) {set_attribute_value(16, *v);} else {unset_attribute_value(16);} } std::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::TransverseBarSpacing() const { if(get_attribute_value(17).isNull()) { return std::nullopt; } double v = get_attribute_value(17); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setTransverseBarSpacing(const std::optional< double >& v) { if (v) {set_attribute_value(17, *v);} else {unset_attribute_value(17);} } std::optional< std::string > Ifc4x3_rc1::IfcReinforcingMeshType::BendingShapeCode() const { if(get_attribute_value(18).isNull()) { return std::nullopt; } std::string v = get_attribute_value(18); return v; } void Ifc4x3_rc1::IfcReinforcingMeshType::setBendingShapeCode(const std::optional< std::string >& v) { if (v) {set_attribute_value(18, *v);} else {unset_attribute_value(18);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcBendingParameterSelect > > Ifc4x3_rc1::IfcReinforcingMeshType::BendingParameters() const { if(get_attribute_value(19).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(19); return cast_vector<::Ifc4x3_rc1::IfcBendingParameterSelect>(es); } void Ifc4x3_rc1::IfcReinforcingMeshType::setBendingParameters(const std::optional< std::vector< ::Ifc4x3_rc1::IfcBendingParameterSelect > >& v) { if (v) {set_attribute_value(19, cast_vector(*v));} else {unset_attribute_value(19);} } // const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingMeshType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[908]); } const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingMeshType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[908]); } // Ifc4x3_rc1::IfcReinforcingMeshType::IfcReinforcingMeshType(const std::weak_ptr& e) : IfcReinforcingElementType(e) { } // Ifc4x3_rc1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, std::optional< double > v11_MeshLength, std::optional< double > v12_MeshWidth, std::optional< double > v13_LongitudinalBarNominalDiameter, std::optional< double > v14_TransverseBarNominalDiameter, std::optional< double > v15_LongitudinalBarCrossSectionArea, std::optional< double > v16_TransverseBarCrossSectionArea, std::optional< double > v17_LongitudinalBarSpacing, std::optional< double > v18_TransverseBarSpacing, std::optional< std::string > v19_BendingShapeCode, std::optional< std::vector< ::Ifc4x3_rc1::IfcBendingParameterSelect > > v20_BendingParameters) : IfcReinforcingElementType(const std::weak_ptr&(in_memory_attribute_storage(20))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Class(),(size_t)v10_PredefinedType))); if (v11_MeshLength) {set_attribute_value(10, (*v11_MeshLength)); } if (v12_MeshWidth) {set_attribute_value(11, (*v12_MeshWidth)); } if (v13_LongitudinalBarNominalDiameter) {set_attribute_value(12, (*v13_LongitudinalBarNominalDiameter)); } if (v14_TransverseBarNominalDiameter) {set_attribute_value(13, (*v14_TransverseBarNominalDiameter)); } if (v15_LongitudinalBarCrossSectionArea) {set_attribute_value(14, (*v15_LongitudinalBarCrossSectionArea)); } if (v16_TransverseBarCrossSectionArea) {set_attribute_value(15, (*v16_TransverseBarCrossSectionArea)); } if (v17_LongitudinalBarSpacing) {set_attribute_value(16, (*v17_LongitudinalBarSpacing)); } if (v18_TransverseBarSpacing) {set_attribute_value(17, (*v18_TransverseBarSpacing)); } if (v19_BendingShapeCode) {set_attribute_value(18, (*v19_BendingShapeCode)); } if (v20_BendingParameters) {set_attribute_value(19, (*v20_BendingParameters)->generalize()); }; populate_derived(); } // Function implementations for IfcRelAggregates ::Ifc4x3_rc1::IfcObjectDefinition Ifc4x3_rc1::IfcRelAggregates::RelatingObject() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcObjectDefinition>(); } void Ifc4x3_rc1::IfcRelAggregates::setRelatingObject(const ::Ifc4x3_rc1::IfcObjectDefinition& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > Ifc4x3_rc1::IfcRelAggregates::RelatedObjects() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcObjectDefinition>(es); } void Ifc4x3_rc1::IfcRelAggregates::setRelatedObjects(const std::vector< ::Ifc4x3_rc1::IfcObjectDefinition >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAggregates::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[910]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAggregates::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[910]); } // Ifc4x3_rc1::IfcRelAggregates::IfcRelAggregates(const std::weak_ptr& e) : IfcRelDecomposes(e) { } // Ifc4x3_rc1::IfcRelAggregates::IfcRelAggregates(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcObjectDefinition v5_RelatingObject, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v6_RelatedObjects) : IfcRelDecomposes(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingObject));set_attribute_value(5, (v6_RelatedObjects)->generalize());; populate_derived(); } // Function implementations for IfcRelAssigns std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > Ifc4x3_rc1::IfcRelAssigns::RelatedObjects() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcObjectDefinition>(es); } void Ifc4x3_rc1::IfcRelAssigns::setRelatedObjects(const std::vector< ::Ifc4x3_rc1::IfcObjectDefinition >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > Ifc4x3_rc1::IfcRelAssigns::RelatedObjectsType() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcObjectTypeEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcRelAssigns::setRelatedObjectsType(const std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value >& v) { if (v) {set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(5);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssigns::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[911]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssigns::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[911]); } // Ifc4x3_rc1::IfcRelAssigns::IfcRelAssigns(const std::weak_ptr& e) : IfcRelationship(e) { } // Ifc4x3_rc1::IfcRelAssigns::IfcRelAssigns(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType) : IfcRelationship(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_RelatedObjectsType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)*v6_RelatedObjectsType))); }; populate_derived(); } // Function implementations for IfcRelAssignsToActor ::Ifc4x3_rc1::IfcActor Ifc4x3_rc1::IfcRelAssignsToActor::RelatingActor() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcActor>(); } void Ifc4x3_rc1::IfcRelAssignsToActor::setRelatingActor(const ::Ifc4x3_rc1::IfcActor& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcActorRole Ifc4x3_rc1::IfcRelAssignsToActor::ActingRole() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcActorRole{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcActorRole>(); } void Ifc4x3_rc1::IfcRelAssignsToActor::setActingRole(const ::Ifc4x3_rc1::IfcActorRole& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToActor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[912]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToActor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[912]); } // Ifc4x3_rc1::IfcRelAssignsToActor::IfcRelAssignsToActor(const std::weak_ptr& e) : IfcRelAssigns(e) { } // Ifc4x3_rc1::IfcRelAssignsToActor::IfcRelAssignsToActor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc1::IfcActor v7_RelatingActor, ::Ifc4x3_rc1::IfcActorRole v8_ActingRole) : IfcRelAssigns(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_RelatedObjectsType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)*v6_RelatedObjectsType))); }set_attribute_value(6, (v7_RelatingActor)); if (v8_ActingRole) {set_attribute_value(7, (*v8_ActingRole)); }; populate_derived(); } // Function implementations for IfcRelAssignsToControl ::Ifc4x3_rc1::IfcControl Ifc4x3_rc1::IfcRelAssignsToControl::RelatingControl() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcControl>(); } void Ifc4x3_rc1::IfcRelAssignsToControl::setRelatingControl(const ::Ifc4x3_rc1::IfcControl& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToControl::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[913]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToControl::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[913]); } // Ifc4x3_rc1::IfcRelAssignsToControl::IfcRelAssignsToControl(const std::weak_ptr& e) : IfcRelAssigns(e) { } // Ifc4x3_rc1::IfcRelAssignsToControl::IfcRelAssignsToControl(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc1::IfcControl v7_RelatingControl) : IfcRelAssigns(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_RelatedObjectsType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)*v6_RelatedObjectsType))); }set_attribute_value(6, (v7_RelatingControl));; populate_derived(); } // Function implementations for IfcRelAssignsToGroup ::Ifc4x3_rc1::IfcGroup Ifc4x3_rc1::IfcRelAssignsToGroup::RelatingGroup() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcGroup>(); } void Ifc4x3_rc1::IfcRelAssignsToGroup::setRelatingGroup(const ::Ifc4x3_rc1::IfcGroup& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToGroup::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[914]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToGroup::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[914]); } // Ifc4x3_rc1::IfcRelAssignsToGroup::IfcRelAssignsToGroup(const std::weak_ptr& e) : IfcRelAssigns(e) { } // Ifc4x3_rc1::IfcRelAssignsToGroup::IfcRelAssignsToGroup(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc1::IfcGroup v7_RelatingGroup) : IfcRelAssigns(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_RelatedObjectsType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)*v6_RelatedObjectsType))); }set_attribute_value(6, (v7_RelatingGroup));; populate_derived(); } // Function implementations for IfcRelAssignsToGroupByFactor double Ifc4x3_rc1::IfcRelAssignsToGroupByFactor::Factor() const { double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcRelAssignsToGroupByFactor::setFactor(const double& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToGroupByFactor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[915]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToGroupByFactor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[915]); } // Ifc4x3_rc1::IfcRelAssignsToGroupByFactor::IfcRelAssignsToGroupByFactor(const std::weak_ptr& e) : IfcRelAssignsToGroup(e) { } // Ifc4x3_rc1::IfcRelAssignsToGroupByFactor::IfcRelAssignsToGroupByFactor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc1::IfcGroup v7_RelatingGroup, double v8_Factor) : IfcRelAssignsToGroup(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_RelatedObjectsType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)*v6_RelatedObjectsType))); }set_attribute_value(6, (v7_RelatingGroup));set_attribute_value(7, (v8_Factor));; populate_derived(); } // Function implementations for IfcRelAssignsToProcess ::Ifc4x3_rc1::IfcProcessSelect Ifc4x3_rc1::IfcRelAssignsToProcess::RelatingProcess() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcProcessSelect>(); } void Ifc4x3_rc1::IfcRelAssignsToProcess::setRelatingProcess(const ::Ifc4x3_rc1::IfcProcessSelect& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcMeasureWithUnit Ifc4x3_rc1::IfcRelAssignsToProcess::QuantityInProcess() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcMeasureWithUnit{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcMeasureWithUnit>(); } void Ifc4x3_rc1::IfcRelAssignsToProcess::setQuantityInProcess(const ::Ifc4x3_rc1::IfcMeasureWithUnit& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToProcess::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[916]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToProcess::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[916]); } // Ifc4x3_rc1::IfcRelAssignsToProcess::IfcRelAssignsToProcess(const std::weak_ptr& e) : IfcRelAssigns(e) { } // Ifc4x3_rc1::IfcRelAssignsToProcess::IfcRelAssignsToProcess(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc1::IfcProcessSelect v7_RelatingProcess, ::Ifc4x3_rc1::IfcMeasureWithUnit v8_QuantityInProcess) : IfcRelAssigns(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_RelatedObjectsType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)*v6_RelatedObjectsType))); }set_attribute_value(6, (v7_RelatingProcess)); if (v8_QuantityInProcess) {set_attribute_value(7, (*v8_QuantityInProcess)); }; populate_derived(); } // Function implementations for IfcRelAssignsToProduct ::Ifc4x3_rc1::IfcProductSelect Ifc4x3_rc1::IfcRelAssignsToProduct::RelatingProduct() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcProductSelect>(); } void Ifc4x3_rc1::IfcRelAssignsToProduct::setRelatingProduct(const ::Ifc4x3_rc1::IfcProductSelect& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToProduct::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[917]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToProduct::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[917]); } // Ifc4x3_rc1::IfcRelAssignsToProduct::IfcRelAssignsToProduct(const std::weak_ptr& e) : IfcRelAssigns(e) { } // Ifc4x3_rc1::IfcRelAssignsToProduct::IfcRelAssignsToProduct(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc1::IfcProductSelect v7_RelatingProduct) : IfcRelAssigns(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_RelatedObjectsType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)*v6_RelatedObjectsType))); }set_attribute_value(6, (v7_RelatingProduct));; populate_derived(); } // Function implementations for IfcRelAssignsToResource ::Ifc4x3_rc1::IfcResourceSelect Ifc4x3_rc1::IfcRelAssignsToResource::RelatingResource() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcResourceSelect>(); } void Ifc4x3_rc1::IfcRelAssignsToResource::setRelatingResource(const ::Ifc4x3_rc1::IfcResourceSelect& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[918]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssignsToResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[918]); } // Ifc4x3_rc1::IfcRelAssignsToResource::IfcRelAssignsToResource(const std::weak_ptr& e) : IfcRelAssigns(e) { } // Ifc4x3_rc1::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, std::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc1::IfcResourceSelect v7_RelatingResource) : IfcRelAssigns(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_RelatedObjectsType) {set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcObjectTypeEnum::Class(),(size_t)*v6_RelatedObjectsType))); }set_attribute_value(6, (v7_RelatingResource));; populate_derived(); } // Function implementations for IfcRelAssociates std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > Ifc4x3_rc1::IfcRelAssociates::RelatedObjects() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcDefinitionSelect>(es); } void Ifc4x3_rc1::IfcRelAssociates::setRelatedObjects(const std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociates::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[919]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociates::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[919]); } // Ifc4x3_rc1::IfcRelAssociates::IfcRelAssociates(const std::weak_ptr& e) : IfcRelationship(e) { } // Ifc4x3_rc1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v5_RelatedObjects) : IfcRelationship(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());; populate_derived(); } // Function implementations for IfcRelAssociatesApproval ::Ifc4x3_rc1::IfcApproval Ifc4x3_rc1::IfcRelAssociatesApproval::RelatingApproval() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcApproval>(); } void Ifc4x3_rc1::IfcRelAssociatesApproval::setRelatingApproval(const ::Ifc4x3_rc1::IfcApproval& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesApproval::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[920]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesApproval::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[920]); } // Ifc4x3_rc1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(const std::weak_ptr& e) : IfcRelAssociates(e) { } // Ifc4x3_rc1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v5_RelatedObjects, ::Ifc4x3_rc1::IfcApproval v6_RelatingApproval) : IfcRelAssociates(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingApproval));; populate_derived(); } // Function implementations for IfcRelAssociatesClassification ::Ifc4x3_rc1::IfcClassificationSelect Ifc4x3_rc1::IfcRelAssociatesClassification::RelatingClassification() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcClassificationSelect>(); } void Ifc4x3_rc1::IfcRelAssociatesClassification::setRelatingClassification(const ::Ifc4x3_rc1::IfcClassificationSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesClassification::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[921]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesClassification::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[921]); } // Ifc4x3_rc1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(const std::weak_ptr& e) : IfcRelAssociates(e) { } // Ifc4x3_rc1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v5_RelatedObjects, ::Ifc4x3_rc1::IfcClassificationSelect v6_RelatingClassification) : IfcRelAssociates(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingClassification));; populate_derived(); } // Function implementations for IfcRelAssociatesConstraint std::optional< std::string > Ifc4x3_rc1::IfcRelAssociatesConstraint::Intent() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcRelAssociatesConstraint::setIntent(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } ::Ifc4x3_rc1::IfcConstraint Ifc4x3_rc1::IfcRelAssociatesConstraint::RelatingConstraint() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcConstraint>(); } void Ifc4x3_rc1::IfcRelAssociatesConstraint::setRelatingConstraint(const ::Ifc4x3_rc1::IfcConstraint& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesConstraint::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[922]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesConstraint::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[922]); } // Ifc4x3_rc1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(const std::weak_ptr& e) : IfcRelAssociates(e) { } // Ifc4x3_rc1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v5_RelatedObjects, std::optional< std::string > v6_Intent, ::Ifc4x3_rc1::IfcConstraint v7_RelatingConstraint) : IfcRelAssociates(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize()); if (v6_Intent) {set_attribute_value(5, (*v6_Intent)); }set_attribute_value(6, (v7_RelatingConstraint));; populate_derived(); } // Function implementations for IfcRelAssociatesDocument ::Ifc4x3_rc1::IfcDocumentSelect Ifc4x3_rc1::IfcRelAssociatesDocument::RelatingDocument() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcDocumentSelect>(); } void Ifc4x3_rc1::IfcRelAssociatesDocument::setRelatingDocument(const ::Ifc4x3_rc1::IfcDocumentSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesDocument::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[923]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesDocument::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[923]); } // Ifc4x3_rc1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(const std::weak_ptr& e) : IfcRelAssociates(e) { } // Ifc4x3_rc1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v5_RelatedObjects, ::Ifc4x3_rc1::IfcDocumentSelect v6_RelatingDocument) : IfcRelAssociates(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingDocument));; populate_derived(); } // Function implementations for IfcRelAssociatesLibrary ::Ifc4x3_rc1::IfcLibrarySelect Ifc4x3_rc1::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcLibrarySelect>(); } void Ifc4x3_rc1::IfcRelAssociatesLibrary::setRelatingLibrary(const ::Ifc4x3_rc1::IfcLibrarySelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesLibrary::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[924]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesLibrary::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[924]); } // Ifc4x3_rc1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(const std::weak_ptr& e) : IfcRelAssociates(e) { } // Ifc4x3_rc1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v5_RelatedObjects, ::Ifc4x3_rc1::IfcLibrarySelect v6_RelatingLibrary) : IfcRelAssociates(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingLibrary));; populate_derived(); } // Function implementations for IfcRelAssociatesMaterial ::Ifc4x3_rc1::IfcMaterialSelect Ifc4x3_rc1::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcMaterialSelect>(); } void Ifc4x3_rc1::IfcRelAssociatesMaterial::setRelatingMaterial(const ::Ifc4x3_rc1::IfcMaterialSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesMaterial::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[925]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesMaterial::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[925]); } // Ifc4x3_rc1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(const std::weak_ptr& e) : IfcRelAssociates(e) { } // Ifc4x3_rc1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v5_RelatedObjects, ::Ifc4x3_rc1::IfcMaterialSelect v6_RelatingMaterial) : IfcRelAssociates(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingMaterial));; populate_derived(); } // Function implementations for IfcRelAssociatesProfileDef ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcRelAssociatesProfileDef::RelatingProfileDef() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcRelAssociatesProfileDef::setRelatingProfileDef(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[926]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[926]); } // Ifc4x3_rc1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(const std::weak_ptr& e) : IfcRelAssociates(e) { } // Ifc4x3_rc1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v5_RelatedObjects, ::Ifc4x3_rc1::IfcProfileDef v6_RelatingProfileDef) : IfcRelAssociates(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingProfileDef));; populate_derived(); } // Function implementations for IfcRelConnects // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnects::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[928]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnects::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[928]); } // Ifc4x3_rc1::IfcRelConnects::IfcRelConnects(const std::weak_ptr& e) : IfcRelationship(e) { } // Ifc4x3_rc1::IfcRelConnects::IfcRelConnects(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcRelationship(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcRelConnectsElements ::Ifc4x3_rc1::IfcConnectionGeometry Ifc4x3_rc1::IfcRelConnectsElements::ConnectionGeometry() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcConnectionGeometry{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcConnectionGeometry>(); } void Ifc4x3_rc1::IfcRelConnectsElements::setConnectionGeometry(const ::Ifc4x3_rc1::IfcConnectionGeometry& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcElement Ifc4x3_rc1::IfcRelConnectsElements::RelatingElement() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcElement>(); } void Ifc4x3_rc1::IfcRelConnectsElements::setRelatingElement(const ::Ifc4x3_rc1::IfcElement& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcElement Ifc4x3_rc1::IfcRelConnectsElements::RelatedElement() const { return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcElement>(); } void Ifc4x3_rc1::IfcRelConnectsElements::setRelatedElement(const ::Ifc4x3_rc1::IfcElement& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsElements::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[929]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsElements::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[929]); } // Ifc4x3_rc1::IfcRelConnectsElements::IfcRelConnectsElements(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelConnectsElements::IfcRelConnectsElements(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcConnectionGeometry v5_ConnectionGeometry, ::Ifc4x3_rc1::IfcElement v6_RelatingElement, ::Ifc4x3_rc1::IfcElement v7_RelatedElement) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ConnectionGeometry) {set_attribute_value(4, (*v5_ConnectionGeometry)); }set_attribute_value(5, (v6_RelatingElement));set_attribute_value(6, (v7_RelatedElement));; populate_derived(); } // Function implementations for IfcRelConnectsPathElements std::vector< int > /*[0:?]*/ Ifc4x3_rc1::IfcRelConnectsPathElements::RelatingPriorities() const { std::vector< int > /*[0:?]*/ v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcRelConnectsPathElements::setRelatingPriorities(const std::vector< int > /*[0:?]*/& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::vector< int > /*[0:?]*/ Ifc4x3_rc1::IfcRelConnectsPathElements::RelatedPriorities() const { std::vector< int > /*[0:?]*/ v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcRelConnectsPathElements::setRelatedPriorities(const std::vector< int > /*[0:?]*/& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } ::Ifc4x3_rc1::IfcConnectionTypeEnum::Value Ifc4x3_rc1::IfcRelConnectsPathElements::RelatedConnectionType() const { return ::Ifc4x3_rc1::IfcConnectionTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcRelConnectsPathElements::setRelatedConnectionType(const ::Ifc4x3_rc1::IfcConnectionTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcConnectionTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } ::Ifc4x3_rc1::IfcConnectionTypeEnum::Value Ifc4x3_rc1::IfcRelConnectsPathElements::RelatingConnectionType() const { return ::Ifc4x3_rc1::IfcConnectionTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcRelConnectsPathElements::setRelatingConnectionType(const ::Ifc4x3_rc1::IfcConnectionTypeEnum::Value& v) { set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcConnectionTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(10); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsPathElements::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[930]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsPathElements::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[930]); } // Ifc4x3_rc1::IfcRelConnectsPathElements::IfcRelConnectsPathElements(const std::weak_ptr& e) : IfcRelConnectsElements(e) { } // Ifc4x3_rc1::IfcRelConnectsPathElements::IfcRelConnectsPathElements(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcConnectionGeometry v5_ConnectionGeometry, ::Ifc4x3_rc1::IfcElement v6_RelatingElement, ::Ifc4x3_rc1::IfcElement v7_RelatedElement, std::vector< int > /*[0:?]*/ v8_RelatingPriorities, std::vector< int > /*[0:?]*/ v9_RelatedPriorities, ::Ifc4x3_rc1::IfcConnectionTypeEnum::Value v10_RelatedConnectionType, ::Ifc4x3_rc1::IfcConnectionTypeEnum::Value v11_RelatingConnectionType) : IfcRelConnectsElements(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ConnectionGeometry) {set_attribute_value(4, (*v5_ConnectionGeometry)); }set_attribute_value(5, (v6_RelatingElement));set_attribute_value(6, (v7_RelatedElement));set_attribute_value(7, (v8_RelatingPriorities));set_attribute_value(8, (v9_RelatedPriorities));set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcConnectionTypeEnum::Class(),(size_t)v10_RelatedConnectionType)));set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcConnectionTypeEnum::Class(),(size_t)v11_RelatingConnectionType)));; populate_derived(); } // Function implementations for IfcRelConnectsPortToElement ::Ifc4x3_rc1::IfcPort Ifc4x3_rc1::IfcRelConnectsPortToElement::RelatingPort() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcPort>(); } void Ifc4x3_rc1::IfcRelConnectsPortToElement::setRelatingPort(const ::Ifc4x3_rc1::IfcPort& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcDistributionElement Ifc4x3_rc1::IfcRelConnectsPortToElement::RelatedElement() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcDistributionElement>(); } void Ifc4x3_rc1::IfcRelConnectsPortToElement::setRelatedElement(const ::Ifc4x3_rc1::IfcDistributionElement& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsPortToElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[932]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsPortToElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[932]); } // Ifc4x3_rc1::IfcRelConnectsPortToElement::IfcRelConnectsPortToElement(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelConnectsPortToElement::IfcRelConnectsPortToElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcPort v5_RelatingPort, ::Ifc4x3_rc1::IfcDistributionElement v6_RelatedElement) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingPort));set_attribute_value(5, (v6_RelatedElement));; populate_derived(); } // Function implementations for IfcRelConnectsPorts ::Ifc4x3_rc1::IfcPort Ifc4x3_rc1::IfcRelConnectsPorts::RelatingPort() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcPort>(); } void Ifc4x3_rc1::IfcRelConnectsPorts::setRelatingPort(const ::Ifc4x3_rc1::IfcPort& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcPort Ifc4x3_rc1::IfcRelConnectsPorts::RelatedPort() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcPort>(); } void Ifc4x3_rc1::IfcRelConnectsPorts::setRelatedPort(const ::Ifc4x3_rc1::IfcPort& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcElement Ifc4x3_rc1::IfcRelConnectsPorts::RealizingElement() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcElement{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcElement>(); } void Ifc4x3_rc1::IfcRelConnectsPorts::setRealizingElement(const ::Ifc4x3_rc1::IfcElement& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsPorts::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[931]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsPorts::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[931]); } // Ifc4x3_rc1::IfcRelConnectsPorts::IfcRelConnectsPorts(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelConnectsPorts::IfcRelConnectsPorts(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcPort v5_RelatingPort, ::Ifc4x3_rc1::IfcPort v6_RelatedPort, ::Ifc4x3_rc1::IfcElement v7_RealizingElement) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingPort));set_attribute_value(5, (v6_RelatedPort)); if (v7_RealizingElement) {set_attribute_value(6, (*v7_RealizingElement)); }; populate_derived(); } // Function implementations for IfcRelConnectsStructuralActivity ::Ifc4x3_rc1::IfcStructuralActivityAssignmentSelect Ifc4x3_rc1::IfcRelConnectsStructuralActivity::RelatingElement() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcStructuralActivityAssignmentSelect>(); } void Ifc4x3_rc1::IfcRelConnectsStructuralActivity::setRelatingElement(const ::Ifc4x3_rc1::IfcStructuralActivityAssignmentSelect& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcStructuralActivity Ifc4x3_rc1::IfcRelConnectsStructuralActivity::RelatedStructuralActivity() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcStructuralActivity>(); } void Ifc4x3_rc1::IfcRelConnectsStructuralActivity::setRelatedStructuralActivity(const ::Ifc4x3_rc1::IfcStructuralActivity& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsStructuralActivity::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[933]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsStructuralActivity::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[933]); } // Ifc4x3_rc1::IfcRelConnectsStructuralActivity::IfcRelConnectsStructuralActivity(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelConnectsStructuralActivity::IfcRelConnectsStructuralActivity(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcStructuralActivityAssignmentSelect v5_RelatingElement, ::Ifc4x3_rc1::IfcStructuralActivity v6_RelatedStructuralActivity) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingElement));set_attribute_value(5, (v6_RelatedStructuralActivity));; populate_derived(); } // Function implementations for IfcRelConnectsStructuralMember ::Ifc4x3_rc1::IfcStructuralMember Ifc4x3_rc1::IfcRelConnectsStructuralMember::RelatingStructuralMember() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcStructuralMember>(); } void Ifc4x3_rc1::IfcRelConnectsStructuralMember::setRelatingStructuralMember(const ::Ifc4x3_rc1::IfcStructuralMember& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcStructuralConnection Ifc4x3_rc1::IfcRelConnectsStructuralMember::RelatedStructuralConnection() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcStructuralConnection>(); } void Ifc4x3_rc1::IfcRelConnectsStructuralMember::setRelatedStructuralConnection(const ::Ifc4x3_rc1::IfcStructuralConnection& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcBoundaryCondition Ifc4x3_rc1::IfcRelConnectsStructuralMember::AppliedCondition() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcBoundaryCondition{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcBoundaryCondition>(); } void Ifc4x3_rc1::IfcRelConnectsStructuralMember::setAppliedCondition(const ::Ifc4x3_rc1::IfcBoundaryCondition& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcStructuralConnectionCondition Ifc4x3_rc1::IfcRelConnectsStructuralMember::AdditionalConditions() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcStructuralConnectionCondition{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcStructuralConnectionCondition>(); } void Ifc4x3_rc1::IfcRelConnectsStructuralMember::setAdditionalConditions(const ::Ifc4x3_rc1::IfcStructuralConnectionCondition& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::optional< double > Ifc4x3_rc1::IfcRelConnectsStructuralMember::SupportedLength() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcRelConnectsStructuralMember::setSupportedLength(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcRelConnectsStructuralMember::ConditionCoordinateSystem() const { if(get_attribute_value(9).isNull()) { return ::Ifc4x3_rc1::IfcAxis2Placement3D{}; } return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcRelConnectsStructuralMember::setConditionCoordinateSystem(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsStructuralMember::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[934]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsStructuralMember::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[934]); } // Ifc4x3_rc1::IfcRelConnectsStructuralMember::IfcRelConnectsStructuralMember(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelConnectsStructuralMember::IfcRelConnectsStructuralMember(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcStructuralMember v5_RelatingStructuralMember, ::Ifc4x3_rc1::IfcStructuralConnection v6_RelatedStructuralConnection, ::Ifc4x3_rc1::IfcBoundaryCondition v7_AppliedCondition, ::Ifc4x3_rc1::IfcStructuralConnectionCondition v8_AdditionalConditions, std::optional< double > v9_SupportedLength, ::Ifc4x3_rc1::IfcAxis2Placement3D v10_ConditionCoordinateSystem) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingStructuralMember));set_attribute_value(5, (v6_RelatedStructuralConnection)); if (v7_AppliedCondition) {set_attribute_value(6, (*v7_AppliedCondition)); } if (v8_AdditionalConditions) {set_attribute_value(7, (*v8_AdditionalConditions)); } if (v9_SupportedLength) {set_attribute_value(8, (*v9_SupportedLength)); } if (v10_ConditionCoordinateSystem) {set_attribute_value(9, (*v10_ConditionCoordinateSystem)); }; populate_derived(); } // Function implementations for IfcRelConnectsWithEccentricity ::Ifc4x3_rc1::IfcConnectionGeometry Ifc4x3_rc1::IfcRelConnectsWithEccentricity::ConnectionConstraint() const { return ((express::Base)(get_attribute_value(10))).as<::Ifc4x3_rc1::IfcConnectionGeometry>(); } void Ifc4x3_rc1::IfcRelConnectsWithEccentricity::setConnectionConstraint(const ::Ifc4x3_rc1::IfcConnectionGeometry& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsWithEccentricity::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[935]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsWithEccentricity::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[935]); } // Ifc4x3_rc1::IfcRelConnectsWithEccentricity::IfcRelConnectsWithEccentricity(const std::weak_ptr& e) : IfcRelConnectsStructuralMember(e) { } // Ifc4x3_rc1::IfcRelConnectsWithEccentricity::IfcRelConnectsWithEccentricity(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcStructuralMember v5_RelatingStructuralMember, ::Ifc4x3_rc1::IfcStructuralConnection v6_RelatedStructuralConnection, ::Ifc4x3_rc1::IfcBoundaryCondition v7_AppliedCondition, ::Ifc4x3_rc1::IfcStructuralConnectionCondition v8_AdditionalConditions, std::optional< double > v9_SupportedLength, ::Ifc4x3_rc1::IfcAxis2Placement3D v10_ConditionCoordinateSystem, ::Ifc4x3_rc1::IfcConnectionGeometry v11_ConnectionConstraint) : IfcRelConnectsStructuralMember(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingStructuralMember));set_attribute_value(5, (v6_RelatedStructuralConnection)); if (v7_AppliedCondition) {set_attribute_value(6, (*v7_AppliedCondition)); } if (v8_AdditionalConditions) {set_attribute_value(7, (*v8_AdditionalConditions)); } if (v9_SupportedLength) {set_attribute_value(8, (*v9_SupportedLength)); } if (v10_ConditionCoordinateSystem) {set_attribute_value(9, (*v10_ConditionCoordinateSystem)); }set_attribute_value(10, (v11_ConnectionConstraint));; populate_derived(); } // Function implementations for IfcRelConnectsWithRealizingElements std::vector< ::Ifc4x3_rc1::IfcElement > Ifc4x3_rc1::IfcRelConnectsWithRealizingElements::RealizingElements() const { std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcElement>(es); } void Ifc4x3_rc1::IfcRelConnectsWithRealizingElements::setRealizingElements(const std::vector< ::Ifc4x3_rc1::IfcElement >& v) { set_attribute_value(7, cast_vector(v));if constexpr (false)unset_attribute_value(7); } std::optional< std::string > Ifc4x3_rc1::IfcRelConnectsWithRealizingElements::ConnectionType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcRelConnectsWithRealizingElements::setConnectionType(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsWithRealizingElements::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[936]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelConnectsWithRealizingElements::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[936]); } // Ifc4x3_rc1::IfcRelConnectsWithRealizingElements::IfcRelConnectsWithRealizingElements(const std::weak_ptr& e) : IfcRelConnectsElements(e) { } // Ifc4x3_rc1::IfcRelConnectsWithRealizingElements::IfcRelConnectsWithRealizingElements(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcConnectionGeometry v5_ConnectionGeometry, ::Ifc4x3_rc1::IfcElement v6_RelatingElement, ::Ifc4x3_rc1::IfcElement v7_RelatedElement, std::vector< ::Ifc4x3_rc1::IfcElement > v8_RealizingElements, std::optional< std::string > v9_ConnectionType) : IfcRelConnectsElements(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ConnectionGeometry) {set_attribute_value(4, (*v5_ConnectionGeometry)); }set_attribute_value(5, (v6_RelatingElement));set_attribute_value(6, (v7_RelatedElement));set_attribute_value(7, (v8_RealizingElements)->generalize()); if (v9_ConnectionType) {set_attribute_value(8, (*v9_ConnectionType)); }; populate_derived(); } // Function implementations for IfcRelContainedInSpatialStructure std::vector< ::Ifc4x3_rc1::IfcProduct > Ifc4x3_rc1::IfcRelContainedInSpatialStructure::RelatedElements() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcProduct>(es); } void Ifc4x3_rc1::IfcRelContainedInSpatialStructure::setRelatedElements(const std::vector< ::Ifc4x3_rc1::IfcProduct >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcSpatialElement Ifc4x3_rc1::IfcRelContainedInSpatialStructure::RelatingStructure() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcSpatialElement>(); } void Ifc4x3_rc1::IfcRelContainedInSpatialStructure::setRelatingStructure(const ::Ifc4x3_rc1::IfcSpatialElement& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelContainedInSpatialStructure::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[937]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelContainedInSpatialStructure::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[937]); } // Ifc4x3_rc1::IfcRelContainedInSpatialStructure::IfcRelContainedInSpatialStructure(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelContainedInSpatialStructure::IfcRelContainedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcProduct > v5_RelatedElements, ::Ifc4x3_rc1::IfcSpatialElement v6_RelatingStructure) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedElements)->generalize());set_attribute_value(5, (v6_RelatingStructure));; populate_derived(); } // Function implementations for IfcRelCoversBldgElements ::Ifc4x3_rc1::IfcElement Ifc4x3_rc1::IfcRelCoversBldgElements::RelatingBuildingElement() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcElement>(); } void Ifc4x3_rc1::IfcRelCoversBldgElements::setRelatingBuildingElement(const ::Ifc4x3_rc1::IfcElement& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector< ::Ifc4x3_rc1::IfcCovering > Ifc4x3_rc1::IfcRelCoversBldgElements::RelatedCoverings() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcCovering>(es); } void Ifc4x3_rc1::IfcRelCoversBldgElements::setRelatedCoverings(const std::vector< ::Ifc4x3_rc1::IfcCovering >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelCoversBldgElements::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[938]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelCoversBldgElements::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[938]); } // Ifc4x3_rc1::IfcRelCoversBldgElements::IfcRelCoversBldgElements(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelCoversBldgElements::IfcRelCoversBldgElements(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcElement v5_RelatingBuildingElement, std::vector< ::Ifc4x3_rc1::IfcCovering > v6_RelatedCoverings) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingBuildingElement));set_attribute_value(5, (v6_RelatedCoverings)->generalize());; populate_derived(); } // Function implementations for IfcRelCoversSpaces ::Ifc4x3_rc1::IfcSpace Ifc4x3_rc1::IfcRelCoversSpaces::RelatingSpace() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcSpace>(); } void Ifc4x3_rc1::IfcRelCoversSpaces::setRelatingSpace(const ::Ifc4x3_rc1::IfcSpace& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector< ::Ifc4x3_rc1::IfcCovering > Ifc4x3_rc1::IfcRelCoversSpaces::RelatedCoverings() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcCovering>(es); } void Ifc4x3_rc1::IfcRelCoversSpaces::setRelatedCoverings(const std::vector< ::Ifc4x3_rc1::IfcCovering >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelCoversSpaces::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[939]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelCoversSpaces::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[939]); } // Ifc4x3_rc1::IfcRelCoversSpaces::IfcRelCoversSpaces(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcSpace v5_RelatingSpace, std::vector< ::Ifc4x3_rc1::IfcCovering > v6_RelatedCoverings) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingSpace));set_attribute_value(5, (v6_RelatedCoverings)->generalize());; populate_derived(); } // Function implementations for IfcRelDeclares ::Ifc4x3_rc1::IfcContext Ifc4x3_rc1::IfcRelDeclares::RelatingContext() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcContext>(); } void Ifc4x3_rc1::IfcRelDeclares::setRelatingContext(const ::Ifc4x3_rc1::IfcContext& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > Ifc4x3_rc1::IfcRelDeclares::RelatedDefinitions() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcDefinitionSelect>(es); } void Ifc4x3_rc1::IfcRelDeclares::setRelatedDefinitions(const std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelDeclares::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[940]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelDeclares::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[940]); } // Ifc4x3_rc1::IfcRelDeclares::IfcRelDeclares(const std::weak_ptr& e) : IfcRelationship(e) { } // Ifc4x3_rc1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcContext v5_RelatingContext, std::vector< ::Ifc4x3_rc1::IfcDefinitionSelect > v6_RelatedDefinitions) : IfcRelationship(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingContext));set_attribute_value(5, (v6_RelatedDefinitions)->generalize());; populate_derived(); } // Function implementations for IfcRelDecomposes // const IfcParse::entity& Ifc4x3_rc1::IfcRelDecomposes::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[941]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelDecomposes::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[941]); } // Ifc4x3_rc1::IfcRelDecomposes::IfcRelDecomposes(const std::weak_ptr& e) : IfcRelationship(e) { } // Ifc4x3_rc1::IfcRelDecomposes::IfcRelDecomposes(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcRelationship(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcRelDefines // const IfcParse::entity& Ifc4x3_rc1::IfcRelDefines::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[942]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelDefines::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[942]); } // Ifc4x3_rc1::IfcRelDefines::IfcRelDefines(const std::weak_ptr& e) : IfcRelationship(e) { } // Ifc4x3_rc1::IfcRelDefines::IfcRelDefines(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcRelationship(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcRelDefinesByObject std::vector< ::Ifc4x3_rc1::IfcObject > Ifc4x3_rc1::IfcRelDefinesByObject::RelatedObjects() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcObject>(es); } void Ifc4x3_rc1::IfcRelDefinesByObject::setRelatedObjects(const std::vector< ::Ifc4x3_rc1::IfcObject >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcObject Ifc4x3_rc1::IfcRelDefinesByObject::RelatingObject() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcObject>(); } void Ifc4x3_rc1::IfcRelDefinesByObject::setRelatingObject(const ::Ifc4x3_rc1::IfcObject& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelDefinesByObject::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[943]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelDefinesByObject::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[943]); } // Ifc4x3_rc1::IfcRelDefinesByObject::IfcRelDefinesByObject(const std::weak_ptr& e) : IfcRelDefines(e) { } // Ifc4x3_rc1::IfcRelDefinesByObject::IfcRelDefinesByObject(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObject > v5_RelatedObjects, ::Ifc4x3_rc1::IfcObject v6_RelatingObject) : IfcRelDefines(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingObject));; populate_derived(); } // Function implementations for IfcRelDefinesByProperties std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > Ifc4x3_rc1::IfcRelDefinesByProperties::RelatedObjects() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcObjectDefinition>(es); } void Ifc4x3_rc1::IfcRelDefinesByProperties::setRelatedObjects(const std::vector< ::Ifc4x3_rc1::IfcObjectDefinition >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcPropertySetDefinitionSelect Ifc4x3_rc1::IfcRelDefinesByProperties::RelatingPropertyDefinition() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcPropertySetDefinitionSelect>(); } void Ifc4x3_rc1::IfcRelDefinesByProperties::setRelatingPropertyDefinition(const ::Ifc4x3_rc1::IfcPropertySetDefinitionSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelDefinesByProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[944]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelDefinesByProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[944]); } // Ifc4x3_rc1::IfcRelDefinesByProperties::IfcRelDefinesByProperties(const std::weak_ptr& e) : IfcRelDefines(e) { } // Ifc4x3_rc1::IfcRelDefinesByProperties::IfcRelDefinesByProperties(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v5_RelatedObjects, ::Ifc4x3_rc1::IfcPropertySetDefinitionSelect v6_RelatingPropertyDefinition) : IfcRelDefines(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingPropertyDefinition));; populate_derived(); } // Function implementations for IfcRelDefinesByTemplate std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > Ifc4x3_rc1::IfcRelDefinesByTemplate::RelatedPropertySets() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcPropertySetDefinition>(es); } void Ifc4x3_rc1::IfcRelDefinesByTemplate::setRelatedPropertySets(const std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcPropertySetTemplate Ifc4x3_rc1::IfcRelDefinesByTemplate::RelatingTemplate() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcPropertySetTemplate>(); } void Ifc4x3_rc1::IfcRelDefinesByTemplate::setRelatingTemplate(const ::Ifc4x3_rc1::IfcPropertySetTemplate& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelDefinesByTemplate::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[945]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelDefinesByTemplate::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[945]); } // Ifc4x3_rc1::IfcRelDefinesByTemplate::IfcRelDefinesByTemplate(const std::weak_ptr& e) : IfcRelDefines(e) { } // Ifc4x3_rc1::IfcRelDefinesByTemplate::IfcRelDefinesByTemplate(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > v5_RelatedPropertySets, ::Ifc4x3_rc1::IfcPropertySetTemplate v6_RelatingTemplate) : IfcRelDefines(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedPropertySets)->generalize());set_attribute_value(5, (v6_RelatingTemplate));; populate_derived(); } // Function implementations for IfcRelDefinesByType std::vector< ::Ifc4x3_rc1::IfcObject > Ifc4x3_rc1::IfcRelDefinesByType::RelatedObjects() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcObject>(es); } void Ifc4x3_rc1::IfcRelDefinesByType::setRelatedObjects(const std::vector< ::Ifc4x3_rc1::IfcObject >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcTypeObject Ifc4x3_rc1::IfcRelDefinesByType::RelatingType() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcTypeObject>(); } void Ifc4x3_rc1::IfcRelDefinesByType::setRelatingType(const ::Ifc4x3_rc1::IfcTypeObject& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelDefinesByType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[946]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelDefinesByType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[946]); } // Ifc4x3_rc1::IfcRelDefinesByType::IfcRelDefinesByType(const std::weak_ptr& e) : IfcRelDefines(e) { } // Ifc4x3_rc1::IfcRelDefinesByType::IfcRelDefinesByType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcObject > v5_RelatedObjects, ::Ifc4x3_rc1::IfcTypeObject v6_RelatingType) : IfcRelDefines(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedObjects)->generalize());set_attribute_value(5, (v6_RelatingType));; populate_derived(); } // Function implementations for IfcRelFillsElement ::Ifc4x3_rc1::IfcOpeningElement Ifc4x3_rc1::IfcRelFillsElement::RelatingOpeningElement() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcOpeningElement>(); } void Ifc4x3_rc1::IfcRelFillsElement::setRelatingOpeningElement(const ::Ifc4x3_rc1::IfcOpeningElement& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcElement Ifc4x3_rc1::IfcRelFillsElement::RelatedBuildingElement() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcElement>(); } void Ifc4x3_rc1::IfcRelFillsElement::setRelatedBuildingElement(const ::Ifc4x3_rc1::IfcElement& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelFillsElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[947]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelFillsElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[947]); } // Ifc4x3_rc1::IfcRelFillsElement::IfcRelFillsElement(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelFillsElement::IfcRelFillsElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcOpeningElement v5_RelatingOpeningElement, ::Ifc4x3_rc1::IfcElement v6_RelatedBuildingElement) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingOpeningElement));set_attribute_value(5, (v6_RelatedBuildingElement));; populate_derived(); } // Function implementations for IfcRelFlowControlElements std::vector< ::Ifc4x3_rc1::IfcDistributionControlElement > Ifc4x3_rc1::IfcRelFlowControlElements::RelatedControlElements() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcDistributionControlElement>(es); } void Ifc4x3_rc1::IfcRelFlowControlElements::setRelatedControlElements(const std::vector< ::Ifc4x3_rc1::IfcDistributionControlElement >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcDistributionFlowElement Ifc4x3_rc1::IfcRelFlowControlElements::RelatingFlowElement() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcDistributionFlowElement>(); } void Ifc4x3_rc1::IfcRelFlowControlElements::setRelatingFlowElement(const ::Ifc4x3_rc1::IfcDistributionFlowElement& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelFlowControlElements::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[948]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelFlowControlElements::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[948]); } // Ifc4x3_rc1::IfcRelFlowControlElements::IfcRelFlowControlElements(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelFlowControlElements::IfcRelFlowControlElements(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcDistributionControlElement > v5_RelatedControlElements, ::Ifc4x3_rc1::IfcDistributionFlowElement v6_RelatingFlowElement) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedControlElements)->generalize());set_attribute_value(5, (v6_RelatingFlowElement));; populate_derived(); } // Function implementations for IfcRelInterferesElements ::Ifc4x3_rc1::IfcInterferenceSelect Ifc4x3_rc1::IfcRelInterferesElements::RelatingElement() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcInterferenceSelect>(); } void Ifc4x3_rc1::IfcRelInterferesElements::setRelatingElement(const ::Ifc4x3_rc1::IfcInterferenceSelect& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcInterferenceSelect Ifc4x3_rc1::IfcRelInterferesElements::RelatedElement() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcInterferenceSelect>(); } void Ifc4x3_rc1::IfcRelInterferesElements::setRelatedElement(const ::Ifc4x3_rc1::IfcInterferenceSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcConnectionGeometry Ifc4x3_rc1::IfcRelInterferesElements::InterferenceGeometry() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcConnectionGeometry{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcConnectionGeometry>(); } void Ifc4x3_rc1::IfcRelInterferesElements::setInterferenceGeometry(const ::Ifc4x3_rc1::IfcConnectionGeometry& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< std::string > Ifc4x3_rc1::IfcRelInterferesElements::InterferenceType() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcRelInterferesElements::setInterferenceType(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } boost::logic::tribool Ifc4x3_rc1::IfcRelInterferesElements::ImpliedOrder() const { boost::logic::tribool v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcRelInterferesElements::setImpliedOrder(const boost::logic::tribool& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelInterferesElements::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[949]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelInterferesElements::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[949]); } // Ifc4x3_rc1::IfcRelInterferesElements::IfcRelInterferesElements(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelInterferesElements::IfcRelInterferesElements(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcInterferenceSelect v5_RelatingElement, ::Ifc4x3_rc1::IfcInterferenceSelect v6_RelatedElement, ::Ifc4x3_rc1::IfcConnectionGeometry v7_InterferenceGeometry, std::optional< std::string > v8_InterferenceType, boost::logic::tribool v9_ImpliedOrder) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingElement));set_attribute_value(5, (v6_RelatedElement)); if (v7_InterferenceGeometry) {set_attribute_value(6, (*v7_InterferenceGeometry)); } if (v8_InterferenceType) {set_attribute_value(7, (*v8_InterferenceType)); }set_attribute_value(8, (v9_ImpliedOrder));; populate_derived(); } // Function implementations for IfcRelNests ::Ifc4x3_rc1::IfcObjectDefinition Ifc4x3_rc1::IfcRelNests::RelatingObject() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcObjectDefinition>(); } void Ifc4x3_rc1::IfcRelNests::setRelatingObject(const ::Ifc4x3_rc1::IfcObjectDefinition& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > Ifc4x3_rc1::IfcRelNests::RelatedObjects() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcObjectDefinition>(es); } void Ifc4x3_rc1::IfcRelNests::setRelatedObjects(const std::vector< ::Ifc4x3_rc1::IfcObjectDefinition >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelNests::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[950]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelNests::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[950]); } // Ifc4x3_rc1::IfcRelNests::IfcRelNests(const std::weak_ptr& e) : IfcRelDecomposes(e) { } // Ifc4x3_rc1::IfcRelNests::IfcRelNests(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcObjectDefinition v5_RelatingObject, std::vector< ::Ifc4x3_rc1::IfcObjectDefinition > v6_RelatedObjects) : IfcRelDecomposes(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingObject));set_attribute_value(5, (v6_RelatedObjects)->generalize());; populate_derived(); } // Function implementations for IfcRelPositions ::Ifc4x3_rc1::IfcPositioningElement Ifc4x3_rc1::IfcRelPositions::RelatingPositioningElement() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcPositioningElement>(); } void Ifc4x3_rc1::IfcRelPositions::setRelatingPositioningElement(const ::Ifc4x3_rc1::IfcPositioningElement& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector< ::Ifc4x3_rc1::IfcProduct > Ifc4x3_rc1::IfcRelPositions::RelatedProducts() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcProduct>(es); } void Ifc4x3_rc1::IfcRelPositions::setRelatedProducts(const std::vector< ::Ifc4x3_rc1::IfcProduct >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelPositions::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[951]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelPositions::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[951]); } // Ifc4x3_rc1::IfcRelPositions::IfcRelPositions(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelPositions::IfcRelPositions(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcPositioningElement v5_RelatingPositioningElement, std::vector< ::Ifc4x3_rc1::IfcProduct > v6_RelatedProducts) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingPositioningElement));set_attribute_value(5, (v6_RelatedProducts)->generalize());; populate_derived(); } // Function implementations for IfcRelProjectsElement ::Ifc4x3_rc1::IfcElement Ifc4x3_rc1::IfcRelProjectsElement::RelatingElement() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcElement>(); } void Ifc4x3_rc1::IfcRelProjectsElement::setRelatingElement(const ::Ifc4x3_rc1::IfcElement& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcFeatureElementAddition Ifc4x3_rc1::IfcRelProjectsElement::RelatedFeatureElement() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcFeatureElementAddition>(); } void Ifc4x3_rc1::IfcRelProjectsElement::setRelatedFeatureElement(const ::Ifc4x3_rc1::IfcFeatureElementAddition& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelProjectsElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[952]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelProjectsElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[952]); } // Ifc4x3_rc1::IfcRelProjectsElement::IfcRelProjectsElement(const std::weak_ptr& e) : IfcRelDecomposes(e) { } // Ifc4x3_rc1::IfcRelProjectsElement::IfcRelProjectsElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcElement v5_RelatingElement, ::Ifc4x3_rc1::IfcFeatureElementAddition v6_RelatedFeatureElement) : IfcRelDecomposes(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingElement));set_attribute_value(5, (v6_RelatedFeatureElement));; populate_derived(); } // Function implementations for IfcRelReferencedInSpatialStructure std::vector< ::Ifc4x3_rc1::IfcSpatialReferenceSelect > Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::RelatedElements() const { std::vector es = get_attribute_value(4); return cast_vector<::Ifc4x3_rc1::IfcSpatialReferenceSelect>(es); } void Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::setRelatedElements(const std::vector< ::Ifc4x3_rc1::IfcSpatialReferenceSelect >& v) { set_attribute_value(4, cast_vector(v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcSpatialElement Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::RelatingStructure() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcSpatialElement>(); } void Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::setRelatingStructure(const ::Ifc4x3_rc1::IfcSpatialElement& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[953]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[953]); } // Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::vector< ::Ifc4x3_rc1::IfcSpatialReferenceSelect > v5_RelatedElements, ::Ifc4x3_rc1::IfcSpatialElement v6_RelatingStructure) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatedElements)->generalize());set_attribute_value(5, (v6_RelatingStructure));; populate_derived(); } // Function implementations for IfcRelSequence ::Ifc4x3_rc1::IfcProcess Ifc4x3_rc1::IfcRelSequence::RelatingProcess() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcProcess>(); } void Ifc4x3_rc1::IfcRelSequence::setRelatingProcess(const ::Ifc4x3_rc1::IfcProcess& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcProcess Ifc4x3_rc1::IfcRelSequence::RelatedProcess() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcProcess>(); } void Ifc4x3_rc1::IfcRelSequence::setRelatedProcess(const ::Ifc4x3_rc1::IfcProcess& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcLagTime Ifc4x3_rc1::IfcRelSequence::TimeLag() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcLagTime{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcLagTime>(); } void Ifc4x3_rc1::IfcRelSequence::setTimeLag(const ::Ifc4x3_rc1::IfcLagTime& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< ::Ifc4x3_rc1::IfcSequenceEnum::Value > Ifc4x3_rc1::IfcRelSequence::SequenceType() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSequenceEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcRelSequence::setSequenceType(const std::optional< ::Ifc4x3_rc1::IfcSequenceEnum::Value >& v) { if (v) {set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcSequenceEnum::Class(), (size_t) *v));} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcRelSequence::UserDefinedSequenceType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcRelSequence::setUserDefinedSequenceType(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRelSequence::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[954]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelSequence::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[954]); } // Ifc4x3_rc1::IfcRelSequence::IfcRelSequence(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelSequence::IfcRelSequence(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcProcess v5_RelatingProcess, ::Ifc4x3_rc1::IfcProcess v6_RelatedProcess, ::Ifc4x3_rc1::IfcLagTime v7_TimeLag, std::optional< ::Ifc4x3_rc1::IfcSequenceEnum::Value > v8_SequenceType, std::optional< std::string > v9_UserDefinedSequenceType) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingProcess));set_attribute_value(5, (v6_RelatedProcess)); if (v7_TimeLag) {set_attribute_value(6, (*v7_TimeLag)); } if (v8_SequenceType) {set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcSequenceEnum::Class(),(size_t)*v8_SequenceType))); } if (v9_UserDefinedSequenceType) {set_attribute_value(8, (*v9_UserDefinedSequenceType)); }; populate_derived(); } // Function implementations for IfcRelServicesBuildings ::Ifc4x3_rc1::IfcSystem Ifc4x3_rc1::IfcRelServicesBuildings::RelatingSystem() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcSystem>(); } void Ifc4x3_rc1::IfcRelServicesBuildings::setRelatingSystem(const ::Ifc4x3_rc1::IfcSystem& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector< ::Ifc4x3_rc1::IfcSpatialElement > Ifc4x3_rc1::IfcRelServicesBuildings::RelatedBuildings() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcSpatialElement>(es); } void Ifc4x3_rc1::IfcRelServicesBuildings::setRelatedBuildings(const std::vector< ::Ifc4x3_rc1::IfcSpatialElement >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelServicesBuildings::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[955]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelServicesBuildings::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[955]); } // Ifc4x3_rc1::IfcRelServicesBuildings::IfcRelServicesBuildings(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelServicesBuildings::IfcRelServicesBuildings(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcSystem v5_RelatingSystem, std::vector< ::Ifc4x3_rc1::IfcSpatialElement > v6_RelatedBuildings) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingSystem));set_attribute_value(5, (v6_RelatedBuildings)->generalize());; populate_derived(); } // Function implementations for IfcRelSpaceBoundary ::Ifc4x3_rc1::IfcSpaceBoundarySelect Ifc4x3_rc1::IfcRelSpaceBoundary::RelatingSpace() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcSpaceBoundarySelect>(); } void Ifc4x3_rc1::IfcRelSpaceBoundary::setRelatingSpace(const ::Ifc4x3_rc1::IfcSpaceBoundarySelect& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcElement Ifc4x3_rc1::IfcRelSpaceBoundary::RelatedBuildingElement() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcElement>(); } void Ifc4x3_rc1::IfcRelSpaceBoundary::setRelatedBuildingElement(const ::Ifc4x3_rc1::IfcElement& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcConnectionGeometry Ifc4x3_rc1::IfcRelSpaceBoundary::ConnectionGeometry() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcConnectionGeometry{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcConnectionGeometry>(); } void Ifc4x3_rc1::IfcRelSpaceBoundary::setConnectionGeometry(const ::Ifc4x3_rc1::IfcConnectionGeometry& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value Ifc4x3_rc1::IfcRelSpaceBoundary::PhysicalOrVirtualBoundary() const { return ::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcRelSpaceBoundary::setPhysicalOrVirtualBoundary(const ::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcInternalOrExternalEnum::Value Ifc4x3_rc1::IfcRelSpaceBoundary::InternalOrExternalBoundary() const { return ::Ifc4x3_rc1::IfcInternalOrExternalEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcRelSpaceBoundary::setInternalOrExternalBoundary(const ::Ifc4x3_rc1::IfcInternalOrExternalEnum::Value& v) { set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcInternalOrExternalEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelSpaceBoundary::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[956]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelSpaceBoundary::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[956]); } // Ifc4x3_rc1::IfcRelSpaceBoundary::IfcRelSpaceBoundary(const std::weak_ptr& e) : IfcRelConnects(e) { } // Ifc4x3_rc1::IfcRelSpaceBoundary::IfcRelSpaceBoundary(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcSpaceBoundarySelect v5_RelatingSpace, ::Ifc4x3_rc1::IfcElement v6_RelatedBuildingElement, ::Ifc4x3_rc1::IfcConnectionGeometry v7_ConnectionGeometry, ::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value v8_PhysicalOrVirtualBoundary, ::Ifc4x3_rc1::IfcInternalOrExternalEnum::Value v9_InternalOrExternalBoundary) : IfcRelConnects(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingSpace));set_attribute_value(5, (v6_RelatedBuildingElement)); if (v7_ConnectionGeometry) {set_attribute_value(6, (*v7_ConnectionGeometry)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Class(),(size_t)v8_PhysicalOrVirtualBoundary)));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcInternalOrExternalEnum::Class(),(size_t)v9_InternalOrExternalBoundary)));; populate_derived(); } // Function implementations for IfcRelSpaceBoundary1stLevel ::Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel::ParentBoundary() const { if(get_attribute_value(9).isNull()) { return ::Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel{}; } return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel>(); } void Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel::setParentBoundary(const ::Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } std::vector<::Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel> Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel::InnerBoundaries() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[957], 9)); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[957]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[957]); } // Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel::IfcRelSpaceBoundary1stLevel(const std::weak_ptr& e) : IfcRelSpaceBoundary(e) { } // Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel::IfcRelSpaceBoundary1stLevel(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcSpaceBoundarySelect v5_RelatingSpace, ::Ifc4x3_rc1::IfcElement v6_RelatedBuildingElement, ::Ifc4x3_rc1::IfcConnectionGeometry v7_ConnectionGeometry, ::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value v8_PhysicalOrVirtualBoundary, ::Ifc4x3_rc1::IfcInternalOrExternalEnum::Value v9_InternalOrExternalBoundary, ::Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel v10_ParentBoundary) : IfcRelSpaceBoundary(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingSpace));set_attribute_value(5, (v6_RelatedBuildingElement)); if (v7_ConnectionGeometry) {set_attribute_value(6, (*v7_ConnectionGeometry)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Class(),(size_t)v8_PhysicalOrVirtualBoundary)));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcInternalOrExternalEnum::Class(),(size_t)v9_InternalOrExternalBoundary))); if (v10_ParentBoundary) {set_attribute_value(9, (*v10_ParentBoundary)); }; populate_derived(); } // Function implementations for IfcRelSpaceBoundary2ndLevel ::Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel::CorrespondingBoundary() const { if(get_attribute_value(10).isNull()) { return ::Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel{}; } return ((express::Base)(get_attribute_value(10))).as<::Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel>(); } void Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel::setCorrespondingBoundary(const ::Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } std::vector<::Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel> Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel::Corresponds() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[958], 10)); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[958]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[958]); } // Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel::IfcRelSpaceBoundary2ndLevel(const std::weak_ptr& e) : IfcRelSpaceBoundary1stLevel(e) { } // Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel::IfcRelSpaceBoundary2ndLevel(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcSpaceBoundarySelect v5_RelatingSpace, ::Ifc4x3_rc1::IfcElement v6_RelatedBuildingElement, ::Ifc4x3_rc1::IfcConnectionGeometry v7_ConnectionGeometry, ::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Value v8_PhysicalOrVirtualBoundary, ::Ifc4x3_rc1::IfcInternalOrExternalEnum::Value v9_InternalOrExternalBoundary, ::Ifc4x3_rc1::IfcRelSpaceBoundary1stLevel v10_ParentBoundary, ::Ifc4x3_rc1::IfcRelSpaceBoundary2ndLevel v11_CorrespondingBoundary) : IfcRelSpaceBoundary1stLevel(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingSpace));set_attribute_value(5, (v6_RelatedBuildingElement)); if (v7_ConnectionGeometry) {set_attribute_value(6, (*v7_ConnectionGeometry)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::Class(),(size_t)v8_PhysicalOrVirtualBoundary)));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcInternalOrExternalEnum::Class(),(size_t)v9_InternalOrExternalBoundary))); if (v10_ParentBoundary) {set_attribute_value(9, (*v10_ParentBoundary)); } if (v11_CorrespondingBoundary) {set_attribute_value(10, (*v11_CorrespondingBoundary)); }; populate_derived(); } // Function implementations for IfcRelVoidsElement ::Ifc4x3_rc1::IfcElement Ifc4x3_rc1::IfcRelVoidsElement::RelatingBuildingElement() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcElement>(); } void Ifc4x3_rc1::IfcRelVoidsElement::setRelatingBuildingElement(const ::Ifc4x3_rc1::IfcElement& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcFeatureElementSubtraction Ifc4x3_rc1::IfcRelVoidsElement::RelatedOpeningElement() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcFeatureElementSubtraction>(); } void Ifc4x3_rc1::IfcRelVoidsElement::setRelatedOpeningElement(const ::Ifc4x3_rc1::IfcFeatureElementSubtraction& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRelVoidsElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[959]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelVoidsElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[959]); } // Ifc4x3_rc1::IfcRelVoidsElement::IfcRelVoidsElement(const std::weak_ptr& e) : IfcRelDecomposes(e) { } // Ifc4x3_rc1::IfcRelVoidsElement::IfcRelVoidsElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcElement v5_RelatingBuildingElement, ::Ifc4x3_rc1::IfcFeatureElementSubtraction v6_RelatedOpeningElement) : IfcRelDecomposes(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (v5_RelatingBuildingElement));set_attribute_value(5, (v6_RelatedOpeningElement));; populate_derived(); } // Function implementations for IfcRelationship // const IfcParse::entity& Ifc4x3_rc1::IfcRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[927]); } const IfcParse::entity& Ifc4x3_rc1::IfcRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[927]); } // Ifc4x3_rc1::IfcRelationship::IfcRelationship(const std::weak_ptr& e) : IfcRoot(e) { } // Ifc4x3_rc1::IfcRelationship::IfcRelationship(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : IfcRoot(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcReparametrisedCompositeCurveSegment double Ifc4x3_rc1::IfcReparametrisedCompositeCurveSegment::ParamLength() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcReparametrisedCompositeCurveSegment::setParamLength(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcReparametrisedCompositeCurveSegment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[960]); } const IfcParse::entity& Ifc4x3_rc1::IfcReparametrisedCompositeCurveSegment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[960]); } // Ifc4x3_rc1::IfcReparametrisedCompositeCurveSegment::IfcReparametrisedCompositeCurveSegment(const std::weak_ptr& e) : IfcCompositeCurveSegment(e) { } // Ifc4x3_rc1::IfcReparametrisedCompositeCurveSegment::IfcReparametrisedCompositeCurveSegment(::Ifc4x3_rc1::IfcTransitionCode::Value v1_Transition, bool v2_SameSense, ::Ifc4x3_rc1::IfcCurve v3_ParentCurve, double v4_ParamLength) : IfcCompositeCurveSegment(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCode::Class(),(size_t)v1_Transition)));set_attribute_value(1, (v2_SameSense));set_attribute_value(2, (v3_ParentCurve));set_attribute_value(3, (v4_ParamLength));; populate_derived(); } // Function implementations for IfcRepresentation ::Ifc4x3_rc1::IfcRepresentationContext Ifc4x3_rc1::IfcRepresentation::ContextOfItems() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcRepresentationContext>(); } void Ifc4x3_rc1::IfcRepresentation::setContextOfItems(const ::Ifc4x3_rc1::IfcRepresentationContext& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcRepresentation::RepresentationIdentifier() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcRepresentation::setRepresentationIdentifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcRepresentation::RepresentationType() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcRepresentation::setRepresentationType(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::vector< ::Ifc4x3_rc1::IfcRepresentationItem > Ifc4x3_rc1::IfcRepresentation::Items() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcRepresentationItem>(es); } void Ifc4x3_rc1::IfcRepresentation::setItems(const std::vector< ::Ifc4x3_rc1::IfcRepresentationItem >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } std::vector<::Ifc4x3_rc1::IfcRepresentationMap> Ifc4x3_rc1::IfcRepresentation::RepresentationMap() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[964], 1)); } std::vector<::Ifc4x3_rc1::IfcPresentationLayerAssignment> Ifc4x3_rc1::IfcRepresentation::LayerAssignments() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[803], 2)); } std::vector<::Ifc4x3_rc1::IfcProductRepresentation> Ifc4x3_rc1::IfcRepresentation::OfProductRepresentation() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[816], 2)); } // const IfcParse::entity& Ifc4x3_rc1::IfcRepresentation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[961]); } const IfcParse::entity& Ifc4x3_rc1::IfcRepresentation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[961]); } // Ifc4x3_rc1::IfcRepresentation::IfcRepresentation(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcRepresentation::IfcRepresentation(::Ifc4x3_rc1::IfcRepresentationContext v1_ContextOfItems, std::optional< std::string > v2_RepresentationIdentifier, std::optional< std::string > v3_RepresentationType, std::vector< ::Ifc4x3_rc1::IfcRepresentationItem > v4_Items) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_ContextOfItems)); if (v2_RepresentationIdentifier) {set_attribute_value(1, (*v2_RepresentationIdentifier)); } if (v3_RepresentationType) {set_attribute_value(2, (*v3_RepresentationType)); }set_attribute_value(3, (v4_Items)->generalize());; populate_derived(); } // Function implementations for IfcRepresentationContext std::optional< std::string > Ifc4x3_rc1::IfcRepresentationContext::ContextIdentifier() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcRepresentationContext::setContextIdentifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcRepresentationContext::ContextType() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcRepresentationContext::setContextType(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::vector<::Ifc4x3_rc1::IfcRepresentation> Ifc4x3_rc1::IfcRepresentationContext::RepresentationsInContext() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[961], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcRepresentationContext::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[962]); } const IfcParse::entity& Ifc4x3_rc1::IfcRepresentationContext::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[962]); } // Ifc4x3_rc1::IfcRepresentationContext::IfcRepresentationContext(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcRepresentationContext::IfcRepresentationContext(std::optional< std::string > v1_ContextIdentifier, std::optional< std::string > v2_ContextType) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { if (v1_ContextIdentifier) {set_attribute_value(0, (*v1_ContextIdentifier)); } if (v2_ContextType) {set_attribute_value(1, (*v2_ContextType)); }; populate_derived(); } // Function implementations for IfcRepresentationItem std::vector<::Ifc4x3_rc1::IfcPresentationLayerAssignment> Ifc4x3_rc1::IfcRepresentationItem::LayerAssignment() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[803], 2)); } std::vector<::Ifc4x3_rc1::IfcStyledItem> Ifc4x3_rc1::IfcRepresentationItem::StyledByItem() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1122], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcRepresentationItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[963]); } const IfcParse::entity& Ifc4x3_rc1::IfcRepresentationItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[963]); } // Ifc4x3_rc1::IfcRepresentationItem::IfcRepresentationItem(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcRepresentationItem::IfcRepresentationItem() : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcRepresentationMap ::Ifc4x3_rc1::IfcAxis2Placement Ifc4x3_rc1::IfcRepresentationMap::MappingOrigin() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcAxis2Placement>(); } void Ifc4x3_rc1::IfcRepresentationMap::setMappingOrigin(const ::Ifc4x3_rc1::IfcAxis2Placement& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcRepresentation Ifc4x3_rc1::IfcRepresentationMap::MappedRepresentation() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcRepresentation>(); } void Ifc4x3_rc1::IfcRepresentationMap::setMappedRepresentation(const ::Ifc4x3_rc1::IfcRepresentation& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::vector<::Ifc4x3_rc1::IfcShapeAspect> Ifc4x3_rc1::IfcRepresentationMap::HasShapeAspects() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1010], 4)); } std::vector<::Ifc4x3_rc1::IfcMappedItem> Ifc4x3_rc1::IfcRepresentationMap::MapUsage() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[637], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcRepresentationMap::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[964]); } const IfcParse::entity& Ifc4x3_rc1::IfcRepresentationMap::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[964]); } // Ifc4x3_rc1::IfcRepresentationMap::IfcRepresentationMap(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcRepresentationMap::IfcRepresentationMap(::Ifc4x3_rc1::IfcAxis2Placement v1_MappingOrigin, ::Ifc4x3_rc1::IfcRepresentation v2_MappedRepresentation) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_MappingOrigin));set_attribute_value(1, (v2_MappedRepresentation));; populate_derived(); } // Function implementations for IfcResource std::optional< std::string > Ifc4x3_rc1::IfcResource::Identification() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcResource::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcResource::LongDescription() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcResource::setLongDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::vector<::Ifc4x3_rc1::IfcRelAssignsToResource> Ifc4x3_rc1::IfcResource::ResourceOf() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[918], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[965]); } const IfcParse::entity& Ifc4x3_rc1::IfcResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[965]); } // Ifc4x3_rc1::IfcResource::IfcResource(const std::weak_ptr& e) : IfcObject(e) { } // Ifc4x3_rc1::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription) : IfcObject(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); }; populate_derived(); } // Function implementations for IfcResourceApprovalRelationship std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect > Ifc4x3_rc1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcResourceObjectSelect>(es); } void Ifc4x3_rc1::IfcResourceApprovalRelationship::setRelatedResourceObjects(const std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcApproval Ifc4x3_rc1::IfcResourceApprovalRelationship::RelatingApproval() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcApproval>(); } void Ifc4x3_rc1::IfcResourceApprovalRelationship::setRelatingApproval(const ::Ifc4x3_rc1::IfcApproval& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcResourceApprovalRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[966]); } const IfcParse::entity& Ifc4x3_rc1::IfcResourceApprovalRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[966]); } // Ifc4x3_rc1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect > v3_RelatedResourceObjects, ::Ifc4x3_rc1::IfcApproval v4_RelatingApproval) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_RelatedResourceObjects)->generalize());set_attribute_value(3, (v4_RelatingApproval));; populate_derived(); } // Function implementations for IfcResourceConstraintRelationship ::Ifc4x3_rc1::IfcConstraint Ifc4x3_rc1::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcConstraint>(); } void Ifc4x3_rc1::IfcResourceConstraintRelationship::setRelatingConstraint(const ::Ifc4x3_rc1::IfcConstraint& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect > Ifc4x3_rc1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { std::vector es = get_attribute_value(3); return cast_vector<::Ifc4x3_rc1::IfcResourceObjectSelect>(es); } void Ifc4x3_rc1::IfcResourceConstraintRelationship::setRelatedResourceObjects(const std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect >& v) { set_attribute_value(3, cast_vector(v));if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcResourceConstraintRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[967]); } const IfcParse::entity& Ifc4x3_rc1::IfcResourceConstraintRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[967]); } // Ifc4x3_rc1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(const std::weak_ptr& e) : IfcResourceLevelRelationship(e) { } // Ifc4x3_rc1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcConstraint v3_RelatingConstraint, std::vector< ::Ifc4x3_rc1::IfcResourceObjectSelect > v4_RelatedResourceObjects) : IfcResourceLevelRelationship(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_RelatingConstraint));set_attribute_value(3, (v4_RelatedResourceObjects)->generalize());; populate_derived(); } // Function implementations for IfcResourceLevelRelationship std::optional< std::string > Ifc4x3_rc1::IfcResourceLevelRelationship::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcResourceLevelRelationship::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceLevelRelationship::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcResourceLevelRelationship::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } // const IfcParse::entity& Ifc4x3_rc1::IfcResourceLevelRelationship::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[968]); } const IfcParse::entity& Ifc4x3_rc1::IfcResourceLevelRelationship::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[968]); } // Ifc4x3_rc1::IfcResourceLevelRelationship::IfcResourceLevelRelationship(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcResourceLevelRelationship::IfcResourceLevelRelationship(std::optional< std::string > v1_Name, std::optional< std::string > v2_Description) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); }; populate_derived(); } // Function implementations for IfcResourceTime std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::ScheduleWork() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcResourceTime::setScheduleWork(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcResourceTime::ScheduleUsage() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcResourceTime::setScheduleUsage(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::ScheduleStart() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcResourceTime::setScheduleStart(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::ScheduleFinish() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcResourceTime::setScheduleFinish(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::ScheduleContour() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcResourceTime::setScheduleContour(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::LevelingDelay() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcResourceTime::setLevelingDelay(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< bool > Ifc4x3_rc1::IfcResourceTime::IsOverAllocated() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } bool v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcResourceTime::setIsOverAllocated(const std::optional< bool >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::StatusTime() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcResourceTime::setStatusTime(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::ActualWork() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } std::string v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcResourceTime::setActualWork(const std::optional< std::string >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< double > Ifc4x3_rc1::IfcResourceTime::ActualUsage() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcResourceTime::setActualUsage(const std::optional< double >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::ActualStart() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } std::string v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcResourceTime::setActualStart(const std::optional< std::string >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::ActualFinish() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } std::string v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcResourceTime::setActualFinish(const std::optional< std::string >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } std::optional< std::string > Ifc4x3_rc1::IfcResourceTime::RemainingWork() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } std::string v = get_attribute_value(15); return v; } void Ifc4x3_rc1::IfcResourceTime::setRemainingWork(const std::optional< std::string >& v) { if (v) {set_attribute_value(15, *v);} else {unset_attribute_value(15);} } std::optional< double > Ifc4x3_rc1::IfcResourceTime::RemainingUsage() const { if(get_attribute_value(16).isNull()) { return std::nullopt; } double v = get_attribute_value(16); return v; } void Ifc4x3_rc1::IfcResourceTime::setRemainingUsage(const std::optional< double >& v) { if (v) {set_attribute_value(16, *v);} else {unset_attribute_value(16);} } std::optional< double > Ifc4x3_rc1::IfcResourceTime::Completion() const { if(get_attribute_value(17).isNull()) { return std::nullopt; } double v = get_attribute_value(17); return v; } void Ifc4x3_rc1::IfcResourceTime::setCompletion(const std::optional< double >& v) { if (v) {set_attribute_value(17, *v);} else {unset_attribute_value(17);} } // const IfcParse::entity& Ifc4x3_rc1::IfcResourceTime::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[971]); } const IfcParse::entity& Ifc4x3_rc1::IfcResourceTime::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[971]); } // Ifc4x3_rc1::IfcResourceTime::IfcResourceTime(const std::weak_ptr& e) : IfcSchedulingTime(e) { } // Ifc4x3_rc1::IfcResourceTime::IfcResourceTime(std::optional< std::string > v1_Name, std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value > v2_DataOrigin, std::optional< std::string > v3_UserDefinedDataOrigin, std::optional< std::string > v4_ScheduleWork, std::optional< double > v5_ScheduleUsage, std::optional< std::string > v6_ScheduleStart, std::optional< std::string > v7_ScheduleFinish, std::optional< std::string > v8_ScheduleContour, std::optional< std::string > v9_LevelingDelay, std::optional< bool > v10_IsOverAllocated, std::optional< std::string > v11_StatusTime, std::optional< std::string > v12_ActualWork, std::optional< double > v13_ActualUsage, std::optional< std::string > v14_ActualStart, std::optional< std::string > v15_ActualFinish, std::optional< std::string > v16_RemainingWork, std::optional< double > v17_RemainingUsage, std::optional< double > v18_Completion) : IfcSchedulingTime(const std::weak_ptr&(in_memory_attribute_storage(18))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DataOrigin) {set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)*v2_DataOrigin))); } if (v3_UserDefinedDataOrigin) {set_attribute_value(2, (*v3_UserDefinedDataOrigin)); } if (v4_ScheduleWork) {set_attribute_value(3, (*v4_ScheduleWork)); } if (v5_ScheduleUsage) {set_attribute_value(4, (*v5_ScheduleUsage)); } if (v6_ScheduleStart) {set_attribute_value(5, (*v6_ScheduleStart)); } if (v7_ScheduleFinish) {set_attribute_value(6, (*v7_ScheduleFinish)); } if (v8_ScheduleContour) {set_attribute_value(7, (*v8_ScheduleContour)); } if (v9_LevelingDelay) {set_attribute_value(8, (*v9_LevelingDelay)); } if (v10_IsOverAllocated) {set_attribute_value(9, (*v10_IsOverAllocated)); } if (v11_StatusTime) {set_attribute_value(10, (*v11_StatusTime)); } if (v12_ActualWork) {set_attribute_value(11, (*v12_ActualWork)); } if (v13_ActualUsage) {set_attribute_value(12, (*v13_ActualUsage)); } if (v14_ActualStart) {set_attribute_value(13, (*v14_ActualStart)); } if (v15_ActualFinish) {set_attribute_value(14, (*v15_ActualFinish)); } if (v16_RemainingWork) {set_attribute_value(15, (*v16_RemainingWork)); } if (v17_RemainingUsage) {set_attribute_value(16, (*v17_RemainingUsage)); } if (v18_Completion) {set_attribute_value(17, (*v18_Completion)); }; populate_derived(); } // Function implementations for IfcRevolvedAreaSolid ::Ifc4x3_rc1::IfcAxis1Placement Ifc4x3_rc1::IfcRevolvedAreaSolid::Axis() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcAxis1Placement>(); } void Ifc4x3_rc1::IfcRevolvedAreaSolid::setAxis(const ::Ifc4x3_rc1::IfcAxis1Placement& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcRevolvedAreaSolid::Angle() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcRevolvedAreaSolid::setAngle(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcRevolvedAreaSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[972]); } const IfcParse::entity& Ifc4x3_rc1::IfcRevolvedAreaSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[972]); } // Ifc4x3_rc1::IfcRevolvedAreaSolid::IfcRevolvedAreaSolid(const std::weak_ptr& e) : IfcSweptAreaSolid(e) { } // Ifc4x3_rc1::IfcRevolvedAreaSolid::IfcRevolvedAreaSolid(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcAxis1Placement v3_Axis, double v4_Angle) : IfcSweptAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_Axis));set_attribute_value(3, (v4_Angle));; populate_derived(); } // Function implementations for IfcRevolvedAreaSolidTapered ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcRevolvedAreaSolidTapered::EndSweptArea() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcRevolvedAreaSolidTapered::setEndSweptArea(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcRevolvedAreaSolidTapered::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[973]); } const IfcParse::entity& Ifc4x3_rc1::IfcRevolvedAreaSolidTapered::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[973]); } // Ifc4x3_rc1::IfcRevolvedAreaSolidTapered::IfcRevolvedAreaSolidTapered(const std::weak_ptr& e) : IfcRevolvedAreaSolid(e) { } // Ifc4x3_rc1::IfcRevolvedAreaSolidTapered::IfcRevolvedAreaSolidTapered(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcAxis1Placement v3_Axis, double v4_Angle, ::Ifc4x3_rc1::IfcProfileDef v5_EndSweptArea) : IfcRevolvedAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_Axis));set_attribute_value(3, (v4_Angle));set_attribute_value(4, (v5_EndSweptArea));; populate_derived(); } // Function implementations for IfcRightCircularCone double Ifc4x3_rc1::IfcRightCircularCone::Height() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcRightCircularCone::setHeight(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcRightCircularCone::BottomRadius() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcRightCircularCone::setBottomRadius(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcRightCircularCone::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[974]); } const IfcParse::entity& Ifc4x3_rc1::IfcRightCircularCone::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[974]); } // Ifc4x3_rc1::IfcRightCircularCone::IfcRightCircularCone(const std::weak_ptr& e) : IfcCsgPrimitive3D(e) { } // Ifc4x3_rc1::IfcRightCircularCone::IfcRightCircularCone(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position, double v2_Height, double v3_BottomRadius) : IfcCsgPrimitive3D(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_Height));set_attribute_value(2, (v3_BottomRadius));; populate_derived(); } // Function implementations for IfcRightCircularCylinder double Ifc4x3_rc1::IfcRightCircularCylinder::Height() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcRightCircularCylinder::setHeight(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcRightCircularCylinder::Radius() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcRightCircularCylinder::setRadius(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcRightCircularCylinder::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[975]); } const IfcParse::entity& Ifc4x3_rc1::IfcRightCircularCylinder::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[975]); } // Ifc4x3_rc1::IfcRightCircularCylinder::IfcRightCircularCylinder(const std::weak_ptr& e) : IfcCsgPrimitive3D(e) { } // Ifc4x3_rc1::IfcRightCircularCylinder::IfcRightCircularCylinder(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position, double v2_Height, double v3_Radius) : IfcCsgPrimitive3D(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_Height));set_attribute_value(2, (v3_Radius));; populate_derived(); } // Function implementations for IfcRoad // const IfcParse::entity& Ifc4x3_rc1::IfcRoad::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[976]); } const IfcParse::entity& Ifc4x3_rc1::IfcRoad::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[976]); } // Ifc4x3_rc1::IfcRoad::IfcRoad(const std::weak_ptr& e) : IfcFacility(e) { } // Ifc4x3_rc1::IfcRoad::IfcRoad(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType) : IfcFacility(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); }; populate_derived(); } // Function implementations for IfcRoof std::optional< ::Ifc4x3_rc1::IfcRoofTypeEnum::Value > Ifc4x3_rc1::IfcRoof::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcRoofTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcRoof::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcRoofTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcRoofTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRoof::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[979]); } const IfcParse::entity& Ifc4x3_rc1::IfcRoof::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[979]); } // Ifc4x3_rc1::IfcRoof::IfcRoof(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcRoof::IfcRoof(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcRoofTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcRoofTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcRoofType ::Ifc4x3_rc1::IfcRoofTypeEnum::Value Ifc4x3_rc1::IfcRoofType::PredefinedType() const { return ::Ifc4x3_rc1::IfcRoofTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcRoofType::setPredefinedType(const ::Ifc4x3_rc1::IfcRoofTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcRoofTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcRoofType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[980]); } const IfcParse::entity& Ifc4x3_rc1::IfcRoofType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[980]); } // Ifc4x3_rc1::IfcRoofType::IfcRoofType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcRoofType::IfcRoofType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcRoofTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcRoofTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcRoot std::string Ifc4x3_rc1::IfcRoot::GlobalId() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcRoot::setGlobalId(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcOwnerHistory Ifc4x3_rc1::IfcRoot::OwnerHistory() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcOwnerHistory{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcOwnerHistory>(); } void Ifc4x3_rc1::IfcRoot::setOwnerHistory(const ::Ifc4x3_rc1::IfcOwnerHistory& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcRoot::Name() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcRoot::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::string > Ifc4x3_rc1::IfcRoot::Description() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcRoot::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcRoot::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[982]); } const IfcParse::entity& Ifc4x3_rc1::IfcRoot::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[982]); } // Ifc4x3_rc1::IfcRoot::IfcRoot(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcRoot::IfcRoot(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }; populate_derived(); } // Function implementations for IfcRoundedRectangleProfileDef double Ifc4x3_rc1::IfcRoundedRectangleProfileDef::RoundingRadius() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcRoundedRectangleProfileDef::setRoundingRadius(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcRoundedRectangleProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[987]); } const IfcParse::entity& Ifc4x3_rc1::IfcRoundedRectangleProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[987]); } // Ifc4x3_rc1::IfcRoundedRectangleProfileDef::IfcRoundedRectangleProfileDef(const std::weak_ptr& e) : IfcRectangleProfileDef(e) { } // Ifc4x3_rc1::IfcRoundedRectangleProfileDef::IfcRoundedRectangleProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_XDim, double v5_YDim, double v6_RoundingRadius) : IfcRectangleProfileDef(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_XDim));set_attribute_value(4, (v5_YDim));set_attribute_value(5, (v6_RoundingRadius));; populate_derived(); } // Function implementations for IfcSIUnit std::optional< ::Ifc4x3_rc1::IfcSIPrefix::Value > Ifc4x3_rc1::IfcSIUnit::Prefix() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSIPrefix::FromString(get_attribute_value(2)); } void Ifc4x3_rc1::IfcSIUnit::setPrefix(const std::optional< ::Ifc4x3_rc1::IfcSIPrefix::Value >& v) { if (v) {set_attribute_value(2, EnumerationReference(&::Ifc4x3_rc1::IfcSIPrefix::Class(), (size_t) *v));} else {unset_attribute_value(2);} } ::Ifc4x3_rc1::IfcSIUnitName::Value Ifc4x3_rc1::IfcSIUnit::Name() const { return ::Ifc4x3_rc1::IfcSIUnitName::FromString(get_attribute_value(3)); } void Ifc4x3_rc1::IfcSIUnit::setName(const ::Ifc4x3_rc1::IfcSIUnitName::Value& v) { set_attribute_value(3, EnumerationReference(&::Ifc4x3_rc1::IfcSIUnitName::Class(), (size_t) v));if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcSIUnit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1028]); } const IfcParse::entity& Ifc4x3_rc1::IfcSIUnit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1028]); } // Ifc4x3_rc1::IfcSIUnit::IfcSIUnit(const std::weak_ptr& e) : IfcNamedUnit(e) { } // Ifc4x3_rc1::IfcSIUnit::IfcSIUnit(::Ifc4x3_rc1::IfcUnitEnum::Value v2_UnitType, std::optional< ::Ifc4x3_rc1::IfcSIPrefix::Value > v3_Prefix, ::Ifc4x3_rc1::IfcSIUnitName::Value v4_Name) : IfcNamedUnit(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitEnum::Class(),(size_t)v2_UnitType))); if (v3_Prefix) {set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcSIPrefix::Class(),(size_t)*v3_Prefix))); }set_attribute_value(3, (EnumerationReference(&::Ifc4x3_rc1::IfcSIUnitName::Class(),(size_t)v4_Name)));; populate_derived(); } // Function implementations for IfcSanitaryTerminal std::optional< ::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value > Ifc4x3_rc1::IfcSanitaryTerminal::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSanitaryTerminal::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSanitaryTerminal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[988]); } const IfcParse::entity& Ifc4x3_rc1::IfcSanitaryTerminal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[988]); } // Ifc4x3_rc1::IfcSanitaryTerminal::IfcSanitaryTerminal(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcSanitaryTerminal::IfcSanitaryTerminal(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSanitaryTerminalType ::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value Ifc4x3_rc1::IfcSanitaryTerminalType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSanitaryTerminalType::setPredefinedType(const ::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcSanitaryTerminalType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[989]); } const IfcParse::entity& Ifc4x3_rc1::IfcSanitaryTerminalType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[989]); } // Ifc4x3_rc1::IfcSanitaryTerminalType::IfcSanitaryTerminalType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcSanitaryTerminalType::IfcSanitaryTerminalType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcSchedulingTime std::optional< std::string > Ifc4x3_rc1::IfcSchedulingTime::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcSchedulingTime::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value > Ifc4x3_rc1::IfcSchedulingTime::DataOrigin() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcDataOriginEnum::FromString(get_attribute_value(1)); } void Ifc4x3_rc1::IfcSchedulingTime::setDataOrigin(const std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value >& v) { if (v) {set_attribute_value(1, EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(), (size_t) *v));} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcSchedulingTime::UserDefinedDataOrigin() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcSchedulingTime::setUserDefinedDataOrigin(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSchedulingTime::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[991]); } const IfcParse::entity& Ifc4x3_rc1::IfcSchedulingTime::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[991]); } // Ifc4x3_rc1::IfcSchedulingTime::IfcSchedulingTime(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcSchedulingTime::IfcSchedulingTime(std::optional< std::string > v1_Name, std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value > v2_DataOrigin, std::optional< std::string > v3_UserDefinedDataOrigin) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DataOrigin) {set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)*v2_DataOrigin))); } if (v3_UserDefinedDataOrigin) {set_attribute_value(2, (*v3_UserDefinedDataOrigin)); }; populate_derived(); } // Function implementations for IfcSeamCurve // const IfcParse::entity& Ifc4x3_rc1::IfcSeamCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[992]); } const IfcParse::entity& Ifc4x3_rc1::IfcSeamCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[992]); } // Ifc4x3_rc1::IfcSeamCurve::IfcSeamCurve(const std::weak_ptr& e) : IfcSurfaceCurve(e) { } // Ifc4x3_rc1::IfcSeamCurve::IfcSeamCurve(::Ifc4x3_rc1::IfcCurve v1_Curve3D, std::vector< ::Ifc4x3_rc1::IfcPcurve > v2_AssociatedGeometry, ::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation) : IfcSurfaceCurve(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Curve3D));set_attribute_value(1, (v2_AssociatedGeometry)->generalize());set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Class(),(size_t)v3_MasterRepresentation)));; populate_derived(); } // Function implementations for IfcSectionProperties ::Ifc4x3_rc1::IfcSectionTypeEnum::Value Ifc4x3_rc1::IfcSectionProperties::SectionType() const { return ::Ifc4x3_rc1::IfcSectionTypeEnum::FromString(get_attribute_value(0)); } void Ifc4x3_rc1::IfcSectionProperties::setSectionType(const ::Ifc4x3_rc1::IfcSectionTypeEnum::Value& v) { set_attribute_value(0, EnumerationReference(&::Ifc4x3_rc1::IfcSectionTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcSectionProperties::StartProfile() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcSectionProperties::setStartProfile(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcSectionProperties::EndProfile() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcProfileDef{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcSectionProperties::setEndProfile(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcSectionProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[999]); } const IfcParse::entity& Ifc4x3_rc1::IfcSectionProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[999]); } // Ifc4x3_rc1::IfcSectionProperties::IfcSectionProperties(const std::weak_ptr& e) : IfcPreDefinedProperties(e) { } // Ifc4x3_rc1::IfcSectionProperties::IfcSectionProperties(::Ifc4x3_rc1::IfcSectionTypeEnum::Value v1_SectionType, ::Ifc4x3_rc1::IfcProfileDef v2_StartProfile, ::Ifc4x3_rc1::IfcProfileDef v3_EndProfile) : IfcPreDefinedProperties(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcSectionTypeEnum::Class(),(size_t)v1_SectionType)));set_attribute_value(1, (v2_StartProfile)); if (v3_EndProfile) {set_attribute_value(2, (*v3_EndProfile)); }; populate_derived(); } // Function implementations for IfcSectionReinforcementProperties double Ifc4x3_rc1::IfcSectionReinforcementProperties::LongitudinalStartPosition() const { double v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcSectionReinforcementProperties::setLongitudinalStartPosition(const double& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcSectionReinforcementProperties::LongitudinalEndPosition() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSectionReinforcementProperties::setLongitudinalEndPosition(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< double > Ifc4x3_rc1::IfcSectionReinforcementProperties::TransversePosition() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcSectionReinforcementProperties::setTransversePosition(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } ::Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Value Ifc4x3_rc1::IfcSectionReinforcementProperties::ReinforcementRole() const { return ::Ifc4x3_rc1::IfcReinforcingBarRoleEnum::FromString(get_attribute_value(3)); } void Ifc4x3_rc1::IfcSectionReinforcementProperties::setReinforcementRole(const ::Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Value& v) { set_attribute_value(3, EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcSectionProperties Ifc4x3_rc1::IfcSectionReinforcementProperties::SectionDefinition() const { return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcSectionProperties>(); } void Ifc4x3_rc1::IfcSectionReinforcementProperties::setSectionDefinition(const ::Ifc4x3_rc1::IfcSectionProperties& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector< ::Ifc4x3_rc1::IfcReinforcementBarProperties > Ifc4x3_rc1::IfcSectionReinforcementProperties::CrossSectionReinforcementDefinitions() const { std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcReinforcementBarProperties>(es); } void Ifc4x3_rc1::IfcSectionReinforcementProperties::setCrossSectionReinforcementDefinitions(const std::vector< ::Ifc4x3_rc1::IfcReinforcementBarProperties >& v) { set_attribute_value(5, cast_vector(v));if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcSectionReinforcementProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1000]); } const IfcParse::entity& Ifc4x3_rc1::IfcSectionReinforcementProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1000]); } // Ifc4x3_rc1::IfcSectionReinforcementProperties::IfcSectionReinforcementProperties(const std::weak_ptr& e) : IfcPreDefinedProperties(e) { } // Ifc4x3_rc1::IfcSectionReinforcementProperties::IfcSectionReinforcementProperties(double v1_LongitudinalStartPosition, double v2_LongitudinalEndPosition, std::optional< double > v3_TransversePosition, ::Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Value v4_ReinforcementRole, ::Ifc4x3_rc1::IfcSectionProperties v5_SectionDefinition, std::vector< ::Ifc4x3_rc1::IfcReinforcementBarProperties > v6_CrossSectionReinforcementDefinitions) : IfcPreDefinedProperties(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_LongitudinalStartPosition));set_attribute_value(1, (v2_LongitudinalEndPosition)); if (v3_TransversePosition) {set_attribute_value(2, (*v3_TransversePosition)); }set_attribute_value(3, (EnumerationReference(&::Ifc4x3_rc1::IfcReinforcingBarRoleEnum::Class(),(size_t)v4_ReinforcementRole)));set_attribute_value(4, (v5_SectionDefinition));set_attribute_value(5, (v6_CrossSectionReinforcementDefinitions)->generalize());; populate_derived(); } // Function implementations for IfcSectionedSolid ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcSectionedSolid::Directrix() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcSectionedSolid::setDirectrix(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcProfileDef > Ifc4x3_rc1::IfcSectionedSolid::CrossSections() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcProfileDef>(es); } void Ifc4x3_rc1::IfcSectionedSolid::setCrossSections(const std::vector< ::Ifc4x3_rc1::IfcProfileDef >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcSectionedSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[994]); } const IfcParse::entity& Ifc4x3_rc1::IfcSectionedSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[994]); } // Ifc4x3_rc1::IfcSectionedSolid::IfcSectionedSolid(const std::weak_ptr& e) : IfcSolidModel(e) { } // Ifc4x3_rc1::IfcSectionedSolid::IfcSectionedSolid(::Ifc4x3_rc1::IfcCurve v1_Directrix, std::vector< ::Ifc4x3_rc1::IfcProfileDef > v2_CrossSections) : IfcSolidModel(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Directrix));set_attribute_value(1, (v2_CrossSections)->generalize());; populate_derived(); } // Function implementations for IfcSectionedSolidHorizontal std::vector< ::Ifc4x3_rc1::IfcDistanceExpression > Ifc4x3_rc1::IfcSectionedSolidHorizontal::CrossSectionPositions() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcDistanceExpression>(es); } void Ifc4x3_rc1::IfcSectionedSolidHorizontal::setCrossSectionPositions(const std::vector< ::Ifc4x3_rc1::IfcDistanceExpression >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } bool Ifc4x3_rc1::IfcSectionedSolidHorizontal::FixedAxisVertical() const { bool v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcSectionedSolidHorizontal::setFixedAxisVertical(const bool& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcSectionedSolidHorizontal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[995]); } const IfcParse::entity& Ifc4x3_rc1::IfcSectionedSolidHorizontal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[995]); } // Ifc4x3_rc1::IfcSectionedSolidHorizontal::IfcSectionedSolidHorizontal(const std::weak_ptr& e) : IfcSectionedSolid(e) { } // Ifc4x3_rc1::IfcSectionedSolidHorizontal::IfcSectionedSolidHorizontal(::Ifc4x3_rc1::IfcCurve v1_Directrix, std::vector< ::Ifc4x3_rc1::IfcProfileDef > v2_CrossSections, std::vector< ::Ifc4x3_rc1::IfcDistanceExpression > v3_CrossSectionPositions, bool v4_FixedAxisVertical) : IfcSectionedSolid(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Directrix));set_attribute_value(1, (v2_CrossSections)->generalize());set_attribute_value(2, (v3_CrossSectionPositions)->generalize());set_attribute_value(3, (v4_FixedAxisVertical));; populate_derived(); } // Function implementations for IfcSectionedSpine ::Ifc4x3_rc1::IfcCompositeCurve Ifc4x3_rc1::IfcSectionedSpine::SpineCurve() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCompositeCurve>(); } void Ifc4x3_rc1::IfcSectionedSpine::setSpineCurve(const ::Ifc4x3_rc1::IfcCompositeCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcProfileDef > Ifc4x3_rc1::IfcSectionedSpine::CrossSections() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcProfileDef>(es); } void Ifc4x3_rc1::IfcSectionedSpine::setCrossSections(const std::vector< ::Ifc4x3_rc1::IfcProfileDef >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } std::vector< ::Ifc4x3_rc1::IfcAxis2Placement3D > Ifc4x3_rc1::IfcSectionedSpine::CrossSectionPositions() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcAxis2Placement3D>(es); } void Ifc4x3_rc1::IfcSectionedSpine::setCrossSectionPositions(const std::vector< ::Ifc4x3_rc1::IfcAxis2Placement3D >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcSectionedSpine::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[996]); } const IfcParse::entity& Ifc4x3_rc1::IfcSectionedSpine::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[996]); } // Ifc4x3_rc1::IfcSectionedSpine::IfcSectionedSpine(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcSectionedSpine::IfcSectionedSpine(::Ifc4x3_rc1::IfcCompositeCurve v1_SpineCurve, std::vector< ::Ifc4x3_rc1::IfcProfileDef > v2_CrossSections, std::vector< ::Ifc4x3_rc1::IfcAxis2Placement3D > v3_CrossSectionPositions) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_SpineCurve));set_attribute_value(1, (v2_CrossSections)->generalize());set_attribute_value(2, (v3_CrossSectionPositions)->generalize());; populate_derived(); } // Function implementations for IfcSectionedSurface ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcSectionedSurface::Directrix() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcSectionedSurface::setDirectrix(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcDistanceExpression > Ifc4x3_rc1::IfcSectionedSurface::CrossSectionPositions() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcDistanceExpression>(es); } void Ifc4x3_rc1::IfcSectionedSurface::setCrossSectionPositions(const std::vector< ::Ifc4x3_rc1::IfcDistanceExpression >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } std::vector< ::Ifc4x3_rc1::IfcProfileDef > Ifc4x3_rc1::IfcSectionedSurface::CrossSections() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcProfileDef>(es); } void Ifc4x3_rc1::IfcSectionedSurface::setCrossSections(const std::vector< ::Ifc4x3_rc1::IfcProfileDef >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } bool Ifc4x3_rc1::IfcSectionedSurface::FixedAxisVertical() const { bool v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcSectionedSurface::setFixedAxisVertical(const bool& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcSectionedSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[997]); } const IfcParse::entity& Ifc4x3_rc1::IfcSectionedSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[997]); } // Ifc4x3_rc1::IfcSectionedSurface::IfcSectionedSurface(const std::weak_ptr& e) : IfcSurface(e) { } // Ifc4x3_rc1::IfcSectionedSurface::IfcSectionedSurface(::Ifc4x3_rc1::IfcCurve v1_Directrix, std::vector< ::Ifc4x3_rc1::IfcDistanceExpression > v2_CrossSectionPositions, std::vector< ::Ifc4x3_rc1::IfcProfileDef > v3_CrossSections, bool v4_FixedAxisVertical) : IfcSurface(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_Directrix));set_attribute_value(1, (v2_CrossSectionPositions)->generalize());set_attribute_value(2, (v3_CrossSections)->generalize());set_attribute_value(3, (v4_FixedAxisVertical));; populate_derived(); } // Function implementations for IfcSensor std::optional< ::Ifc4x3_rc1::IfcSensorTypeEnum::Value > Ifc4x3_rc1::IfcSensor::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSensorTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSensor::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSensorTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSensorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSensor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1003]); } const IfcParse::entity& Ifc4x3_rc1::IfcSensor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1003]); } // Ifc4x3_rc1::IfcSensor::IfcSensor(const std::weak_ptr& e) : IfcDistributionControlElement(e) { } // Ifc4x3_rc1::IfcSensor::IfcSensor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSensorTypeEnum::Value > v9_PredefinedType) : IfcDistributionControlElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSensorTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSensorType ::Ifc4x3_rc1::IfcSensorTypeEnum::Value Ifc4x3_rc1::IfcSensorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSensorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSensorType::setPredefinedType(const ::Ifc4x3_rc1::IfcSensorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSensorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcSensorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1004]); } const IfcParse::entity& Ifc4x3_rc1::IfcSensorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1004]); } // Ifc4x3_rc1::IfcSensorType::IfcSensorType(const std::weak_ptr& e) : IfcDistributionControlElementType(e) { } // Ifc4x3_rc1::IfcSensorType::IfcSensorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSensorTypeEnum::Value v10_PredefinedType) : IfcDistributionControlElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSensorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcShadingDevice std::optional< ::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value > Ifc4x3_rc1::IfcShadingDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcShadingDevice::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcShadingDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1007]); } const IfcParse::entity& Ifc4x3_rc1::IfcShadingDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1007]); } // Ifc4x3_rc1::IfcShadingDevice::IfcShadingDevice(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcShadingDevice::IfcShadingDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcShadingDeviceType ::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value Ifc4x3_rc1::IfcShadingDeviceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcShadingDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcShadingDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1008]); } const IfcParse::entity& Ifc4x3_rc1::IfcShadingDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1008]); } // Ifc4x3_rc1::IfcShadingDeviceType::IfcShadingDeviceType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcShadingDeviceType::IfcShadingDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcShadingDeviceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcShapeAspect std::vector< ::Ifc4x3_rc1::IfcShapeModel > Ifc4x3_rc1::IfcShapeAspect::ShapeRepresentations() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcShapeModel>(es); } void Ifc4x3_rc1::IfcShapeAspect::setShapeRepresentations(const std::vector< ::Ifc4x3_rc1::IfcShapeModel >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcShapeAspect::Name() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcShapeAspect::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcShapeAspect::Description() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcShapeAspect::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } boost::logic::tribool Ifc4x3_rc1::IfcShapeAspect::ProductDefinitional() const { boost::logic::tribool v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcShapeAspect::setProductDefinitional(const boost::logic::tribool& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcProductRepresentationSelect Ifc4x3_rc1::IfcShapeAspect::PartOfProductDefinitionShape() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcProductRepresentationSelect{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcProductRepresentationSelect>(); } void Ifc4x3_rc1::IfcShapeAspect::setPartOfProductDefinitionShape(const ::Ifc4x3_rc1::IfcProductRepresentationSelect& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcShapeAspect::HasExternalReferences() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcShapeAspect::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1010]); } const IfcParse::entity& Ifc4x3_rc1::IfcShapeAspect::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1010]); } // Ifc4x3_rc1::IfcShapeAspect::IfcShapeAspect(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcShapeAspect::IfcShapeAspect(std::vector< ::Ifc4x3_rc1::IfcShapeModel > v1_ShapeRepresentations, std::optional< std::string > v2_Name, std::optional< std::string > v3_Description, boost::logic::tribool v4_ProductDefinitional, ::Ifc4x3_rc1::IfcProductRepresentationSelect v5_PartOfProductDefinitionShape) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_ShapeRepresentations)->generalize()); if (v2_Name) {set_attribute_value(1, (*v2_Name)); } if (v3_Description) {set_attribute_value(2, (*v3_Description)); }set_attribute_value(3, (v4_ProductDefinitional)); if (v5_PartOfProductDefinitionShape) {set_attribute_value(4, (*v5_PartOfProductDefinitionShape)); }; populate_derived(); } // Function implementations for IfcShapeModel std::vector<::Ifc4x3_rc1::IfcShapeAspect> Ifc4x3_rc1::IfcShapeModel::OfShapeAspect() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1010], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcShapeModel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1011]); } const IfcParse::entity& Ifc4x3_rc1::IfcShapeModel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1011]); } // Ifc4x3_rc1::IfcShapeModel::IfcShapeModel(const std::weak_ptr& e) : IfcRepresentation(e) { } // Ifc4x3_rc1::IfcShapeModel::IfcShapeModel(::Ifc4x3_rc1::IfcRepresentationContext v1_ContextOfItems, std::optional< std::string > v2_RepresentationIdentifier, std::optional< std::string > v3_RepresentationType, std::vector< ::Ifc4x3_rc1::IfcRepresentationItem > v4_Items) : IfcRepresentation(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_ContextOfItems)); if (v2_RepresentationIdentifier) {set_attribute_value(1, (*v2_RepresentationIdentifier)); } if (v3_RepresentationType) {set_attribute_value(2, (*v3_RepresentationType)); }set_attribute_value(3, (v4_Items)->generalize());; populate_derived(); } // Function implementations for IfcShapeRepresentation // const IfcParse::entity& Ifc4x3_rc1::IfcShapeRepresentation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1012]); } const IfcParse::entity& Ifc4x3_rc1::IfcShapeRepresentation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1012]); } // Ifc4x3_rc1::IfcShapeRepresentation::IfcShapeRepresentation(const std::weak_ptr& e) : IfcShapeModel(e) { } // Ifc4x3_rc1::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x3_rc1::IfcRepresentationContext v1_ContextOfItems, std::optional< std::string > v2_RepresentationIdentifier, std::optional< std::string > v3_RepresentationType, std::vector< ::Ifc4x3_rc1::IfcRepresentationItem > v4_Items) : IfcShapeModel(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_ContextOfItems)); if (v2_RepresentationIdentifier) {set_attribute_value(1, (*v2_RepresentationIdentifier)); } if (v3_RepresentationType) {set_attribute_value(2, (*v3_RepresentationType)); }set_attribute_value(3, (v4_Items)->generalize());; populate_derived(); } // Function implementations for IfcShellBasedSurfaceModel std::vector< ::Ifc4x3_rc1::IfcShell > Ifc4x3_rc1::IfcShellBasedSurfaceModel::SbsmBoundary() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcShell>(es); } void Ifc4x3_rc1::IfcShellBasedSurfaceModel::setSbsmBoundary(const std::vector< ::Ifc4x3_rc1::IfcShell >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcShellBasedSurfaceModel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1015]); } const IfcParse::entity& Ifc4x3_rc1::IfcShellBasedSurfaceModel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1015]); } // Ifc4x3_rc1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(std::vector< ::Ifc4x3_rc1::IfcShell > v1_SbsmBoundary) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_SbsmBoundary)->generalize());; populate_derived(); } // Function implementations for IfcSign std::optional< ::Ifc4x3_rc1::IfcSignTypeEnum::Value > Ifc4x3_rc1::IfcSign::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSignTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSign::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSignTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSignTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSign::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1016]); } const IfcParse::entity& Ifc4x3_rc1::IfcSign::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1016]); } // Ifc4x3_rc1::IfcSign::IfcSign(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcSign::IfcSign(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSignTypeEnum::Value > v9_PredefinedType) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSignTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSignType ::Ifc4x3_rc1::IfcSignTypeEnum::Value Ifc4x3_rc1::IfcSignType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSignTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSignType::setPredefinedType(const ::Ifc4x3_rc1::IfcSignTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSignTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcSignType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1020]); } const IfcParse::entity& Ifc4x3_rc1::IfcSignType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1020]); } // Ifc4x3_rc1::IfcSignType::IfcSignType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcSignType::IfcSignType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSignTypeEnum::Value v10_PredefinedType) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSignTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcSignal std::optional< ::Ifc4x3_rc1::IfcSignalTypeEnum::Value > Ifc4x3_rc1::IfcSignal::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSignalTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSignal::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSignalTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSignalTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSignal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1017]); } const IfcParse::entity& Ifc4x3_rc1::IfcSignal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1017]); } // Ifc4x3_rc1::IfcSignal::IfcSignal(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcSignal::IfcSignal(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSignalTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSignalTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSignalType ::Ifc4x3_rc1::IfcSignalTypeEnum::Value Ifc4x3_rc1::IfcSignalType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSignalTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSignalType::setPredefinedType(const ::Ifc4x3_rc1::IfcSignalTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSignalTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcSignalType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1018]); } const IfcParse::entity& Ifc4x3_rc1::IfcSignalType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1018]); } // Ifc4x3_rc1::IfcSignalType::IfcSignalType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcSignalType::IfcSignalType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSignalTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSignalTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcSimpleProperty // const IfcParse::entity& Ifc4x3_rc1::IfcSimpleProperty::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1022]); } const IfcParse::entity& Ifc4x3_rc1::IfcSimpleProperty::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1022]); } // Ifc4x3_rc1::IfcSimpleProperty::IfcSimpleProperty(const std::weak_ptr& e) : IfcProperty(e) { } // Ifc4x3_rc1::IfcSimpleProperty::IfcSimpleProperty(std::string v1_Name, std::optional< std::string > v2_Description) : IfcProperty(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }; populate_derived(); } // Function implementations for IfcSimplePropertyTemplate std::optional< ::Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Value > Ifc4x3_rc1::IfcSimplePropertyTemplate::TemplateType() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::FromString(get_attribute_value(4)); } void Ifc4x3_rc1::IfcSimplePropertyTemplate::setTemplateType(const std::optional< ::Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Value >& v) { if (v) {set_attribute_value(4, EnumerationReference(&::Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcSimplePropertyTemplate::PrimaryMeasureType() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcSimplePropertyTemplate::setPrimaryMeasureType(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcSimplePropertyTemplate::SecondaryMeasureType() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcSimplePropertyTemplate::setSecondaryMeasureType(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } ::Ifc4x3_rc1::IfcPropertyEnumeration Ifc4x3_rc1::IfcSimplePropertyTemplate::Enumerators() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcPropertyEnumeration{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcPropertyEnumeration>(); } void Ifc4x3_rc1::IfcSimplePropertyTemplate::setEnumerators(const ::Ifc4x3_rc1::IfcPropertyEnumeration& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcSimplePropertyTemplate::PrimaryUnit() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcSimplePropertyTemplate::setPrimaryUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcSimplePropertyTemplate::SecondaryUnit() const { if(get_attribute_value(9).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcSimplePropertyTemplate::setSecondaryUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } std::optional< std::string > Ifc4x3_rc1::IfcSimplePropertyTemplate::Expression() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcSimplePropertyTemplate::setExpression(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< ::Ifc4x3_rc1::IfcStateEnum::Value > Ifc4x3_rc1::IfcSimplePropertyTemplate::AccessState() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcStateEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcSimplePropertyTemplate::setAccessState(const std::optional< ::Ifc4x3_rc1::IfcStateEnum::Value >& v) { if (v) {set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcStateEnum::Class(), (size_t) *v));} else {unset_attribute_value(11);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSimplePropertyTemplate::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1023]); } const IfcParse::entity& Ifc4x3_rc1::IfcSimplePropertyTemplate::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1023]); } // Ifc4x3_rc1::IfcSimplePropertyTemplate::IfcSimplePropertyTemplate(const std::weak_ptr& e) : IfcPropertyTemplate(e) { } // Ifc4x3_rc1::IfcSimplePropertyTemplate::IfcSimplePropertyTemplate(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< ::Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Value > v5_TemplateType, std::optional< std::string > v6_PrimaryMeasureType, std::optional< std::string > v7_SecondaryMeasureType, ::Ifc4x3_rc1::IfcPropertyEnumeration v8_Enumerators, ::Ifc4x3_rc1::IfcUnit v9_PrimaryUnit, ::Ifc4x3_rc1::IfcUnit v10_SecondaryUnit, std::optional< std::string > v11_Expression, std::optional< ::Ifc4x3_rc1::IfcStateEnum::Value > v12_AccessState) : IfcPropertyTemplate(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_TemplateType) {set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::Class(),(size_t)*v5_TemplateType))); } if (v6_PrimaryMeasureType) {set_attribute_value(5, (*v6_PrimaryMeasureType)); } if (v7_SecondaryMeasureType) {set_attribute_value(6, (*v7_SecondaryMeasureType)); } if (v8_Enumerators) {set_attribute_value(7, (*v8_Enumerators)); } if (v9_PrimaryUnit) {set_attribute_value(8, (*v9_PrimaryUnit)); } if (v10_SecondaryUnit) {set_attribute_value(9, (*v10_SecondaryUnit)); } if (v11_Expression) {set_attribute_value(10, (*v11_Expression)); } if (v12_AccessState) {set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcStateEnum::Class(),(size_t)*v12_AccessState))); }; populate_derived(); } // Function implementations for IfcSite std::optional< std::vector< int > /*[3:4]*/ > Ifc4x3_rc1::IfcSite::RefLatitude() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::vector< int > /*[3:4]*/ v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcSite::setRefLatitude(const std::optional< std::vector< int > /*[3:4]*/ >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< std::vector< int > /*[3:4]*/ > Ifc4x3_rc1::IfcSite::RefLongitude() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::vector< int > /*[3:4]*/ v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcSite::setRefLongitude(const std::optional< std::vector< int > /*[3:4]*/ >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcSite::RefElevation() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcSite::setRefElevation(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< std::string > Ifc4x3_rc1::IfcSite::LandTitleNumber() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcSite::setLandTitleNumber(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } ::Ifc4x3_rc1::IfcPostalAddress Ifc4x3_rc1::IfcSite::SiteAddress() const { if(get_attribute_value(13).isNull()) { return ::Ifc4x3_rc1::IfcPostalAddress{}; } return ((express::Base)(get_attribute_value(13))).as<::Ifc4x3_rc1::IfcPostalAddress>(); } void Ifc4x3_rc1::IfcSite::setSiteAddress(const ::Ifc4x3_rc1::IfcPostalAddress& v) { set_attribute_value(13, v);if constexpr (false)unset_attribute_value(13); } // const IfcParse::entity& Ifc4x3_rc1::IfcSite::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1027]); } const IfcParse::entity& Ifc4x3_rc1::IfcSite::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1027]); } // Ifc4x3_rc1::IfcSite::IfcSite(const std::weak_ptr& e) : IfcSpatialStructureElement(e) { } // Ifc4x3_rc1::IfcSite::IfcSite(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType, std::optional< std::vector< int > /*[3:4]*/ > v10_RefLatitude, std::optional< std::vector< int > /*[3:4]*/ > v11_RefLongitude, std::optional< double > v12_RefElevation, std::optional< std::string > v13_LandTitleNumber, ::Ifc4x3_rc1::IfcPostalAddress v14_SiteAddress) : IfcSpatialStructureElement(const std::weak_ptr&(in_memory_attribute_storage(14))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); } if (v10_RefLatitude) {set_attribute_value(9, (*v10_RefLatitude)); } if (v11_RefLongitude) {set_attribute_value(10, (*v11_RefLongitude)); } if (v12_RefElevation) {set_attribute_value(11, (*v12_RefElevation)); } if (v13_LandTitleNumber) {set_attribute_value(12, (*v13_LandTitleNumber)); } if (v14_SiteAddress) {set_attribute_value(13, (*v14_SiteAddress)); }; populate_derived(); } // Function implementations for IfcSlab std::optional< ::Ifc4x3_rc1::IfcSlabTypeEnum::Value > Ifc4x3_rc1::IfcSlab::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSlabTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSlab::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSlabTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSlabTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSlab::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1031]); } const IfcParse::entity& Ifc4x3_rc1::IfcSlab::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1031]); } // Ifc4x3_rc1::IfcSlab::IfcSlab(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcSlab::IfcSlab(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSlabTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSlabTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSlabElementedCase // const IfcParse::entity& Ifc4x3_rc1::IfcSlabElementedCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1032]); } const IfcParse::entity& Ifc4x3_rc1::IfcSlabElementedCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1032]); } // Ifc4x3_rc1::IfcSlabElementedCase::IfcSlabElementedCase(const std::weak_ptr& e) : IfcSlab(e) { } // Ifc4x3_rc1::IfcSlabElementedCase::IfcSlabElementedCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSlabTypeEnum::Value > v9_PredefinedType) : IfcSlab(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSlabTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSlabStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcSlabStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1033]); } const IfcParse::entity& Ifc4x3_rc1::IfcSlabStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1033]); } // Ifc4x3_rc1::IfcSlabStandardCase::IfcSlabStandardCase(const std::weak_ptr& e) : IfcSlab(e) { } // Ifc4x3_rc1::IfcSlabStandardCase::IfcSlabStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSlabTypeEnum::Value > v9_PredefinedType) : IfcSlab(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSlabTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSlabType ::Ifc4x3_rc1::IfcSlabTypeEnum::Value Ifc4x3_rc1::IfcSlabType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSlabTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSlabType::setPredefinedType(const ::Ifc4x3_rc1::IfcSlabTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSlabTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcSlabType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1034]); } const IfcParse::entity& Ifc4x3_rc1::IfcSlabType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1034]); } // Ifc4x3_rc1::IfcSlabType::IfcSlabType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcSlabType::IfcSlabType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSlabTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSlabTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcSlippageConnectionCondition std::optional< double > Ifc4x3_rc1::IfcSlippageConnectionCondition::SlippageX() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSlippageConnectionCondition::setSlippageX(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcSlippageConnectionCondition::SlippageY() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcSlippageConnectionCondition::setSlippageY(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcSlippageConnectionCondition::SlippageZ() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcSlippageConnectionCondition::setSlippageZ(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSlippageConnectionCondition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1036]); } const IfcParse::entity& Ifc4x3_rc1::IfcSlippageConnectionCondition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1036]); } // Ifc4x3_rc1::IfcSlippageConnectionCondition::IfcSlippageConnectionCondition(const std::weak_ptr& e) : IfcStructuralConnectionCondition(e) { } // Ifc4x3_rc1::IfcSlippageConnectionCondition::IfcSlippageConnectionCondition(std::optional< std::string > v1_Name, std::optional< double > v2_SlippageX, std::optional< double > v3_SlippageY, std::optional< double > v4_SlippageZ) : IfcStructuralConnectionCondition(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_SlippageX) {set_attribute_value(1, (*v2_SlippageX)); } if (v3_SlippageY) {set_attribute_value(2, (*v3_SlippageY)); } if (v4_SlippageZ) {set_attribute_value(3, (*v4_SlippageZ)); }; populate_derived(); } // Function implementations for IfcSolarDevice std::optional< ::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value > Ifc4x3_rc1::IfcSolarDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSolarDevice::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSolarDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1037]); } const IfcParse::entity& Ifc4x3_rc1::IfcSolarDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1037]); } // Ifc4x3_rc1::IfcSolarDevice::IfcSolarDevice(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcSolarDevice::IfcSolarDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSolarDeviceType ::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value Ifc4x3_rc1::IfcSolarDeviceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSolarDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcSolarDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1038]); } const IfcParse::entity& Ifc4x3_rc1::IfcSolarDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1038]); } // Ifc4x3_rc1::IfcSolarDeviceType::IfcSolarDeviceType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcSolarDeviceType::IfcSolarDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSolarDeviceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcSolidModel // const IfcParse::entity& Ifc4x3_rc1::IfcSolidModel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1041]); } const IfcParse::entity& Ifc4x3_rc1::IfcSolidModel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1041]); } // Ifc4x3_rc1::IfcSolidModel::IfcSolidModel(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcSolidModel::IfcSolidModel() : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcSolidStratum // const IfcParse::entity& Ifc4x3_rc1::IfcSolidStratum::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1043]); } const IfcParse::entity& Ifc4x3_rc1::IfcSolidStratum::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1043]); } // Ifc4x3_rc1::IfcSolidStratum::IfcSolidStratum(const std::weak_ptr& e) : IfcGeotechnicalStratum(e) { } // Ifc4x3_rc1::IfcSolidStratum::IfcSolidStratum(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcGeotechnicalStratum(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcSpace std::optional< ::Ifc4x3_rc1::IfcSpaceTypeEnum::Value > Ifc4x3_rc1::IfcSpace::PredefinedType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSpaceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSpace::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSpaceTypeEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSpaceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcSpace::ElevationWithFlooring() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcSpace::setElevationWithFlooring(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::vector<::Ifc4x3_rc1::IfcRelCoversSpaces> Ifc4x3_rc1::IfcSpace::HasCoverings() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[939], 4)); } std::vector<::Ifc4x3_rc1::IfcRelSpaceBoundary> Ifc4x3_rc1::IfcSpace::BoundedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[956], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcSpace::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1048]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpace::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1048]); } // Ifc4x3_rc1::IfcSpace::IfcSpace(const std::weak_ptr& e) : IfcSpatialStructureElement(e) { } // Ifc4x3_rc1::IfcSpace::IfcSpace(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType, std::optional< ::Ifc4x3_rc1::IfcSpaceTypeEnum::Value > v10_PredefinedType, std::optional< double > v11_ElevationWithFlooring) : IfcSpatialStructureElement(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); } if (v10_PredefinedType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSpaceTypeEnum::Class(),(size_t)*v10_PredefinedType))); } if (v11_ElevationWithFlooring) {set_attribute_value(10, (*v11_ElevationWithFlooring)); }; populate_derived(); } // Function implementations for IfcSpaceHeater std::optional< ::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value > Ifc4x3_rc1::IfcSpaceHeater::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSpaceHeater::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSpaceHeater::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1050]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpaceHeater::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1050]); } // Ifc4x3_rc1::IfcSpaceHeater::IfcSpaceHeater(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcSpaceHeater::IfcSpaceHeater(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSpaceHeaterType ::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value Ifc4x3_rc1::IfcSpaceHeaterType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSpaceHeaterType::setPredefinedType(const ::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcSpaceHeaterType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1051]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpaceHeaterType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1051]); } // Ifc4x3_rc1::IfcSpaceHeaterType::IfcSpaceHeaterType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcSpaceHeaterType::IfcSpaceHeaterType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcSpaceType ::Ifc4x3_rc1::IfcSpaceTypeEnum::Value Ifc4x3_rc1::IfcSpaceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSpaceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSpaceType::setPredefinedType(const ::Ifc4x3_rc1::IfcSpaceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSpaceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< std::string > Ifc4x3_rc1::IfcSpaceType::LongName() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcSpaceType::setLongName(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSpaceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1053]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpaceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1053]); } // Ifc4x3_rc1::IfcSpaceType::IfcSpaceType(const std::weak_ptr& e) : IfcSpatialStructureElementType(e) { } // Ifc4x3_rc1::IfcSpaceType::IfcSpaceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSpaceTypeEnum::Value v10_PredefinedType, std::optional< std::string > v11_LongName) : IfcSpatialStructureElementType(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSpaceTypeEnum::Class(),(size_t)v10_PredefinedType))); if (v11_LongName) {set_attribute_value(10, (*v11_LongName)); }; populate_derived(); } // Function implementations for IfcSpatialElement std::optional< std::string > Ifc4x3_rc1::IfcSpatialElement::LongName() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcSpatialElement::setLongName(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::vector<::Ifc4x3_rc1::IfcRelContainedInSpatialStructure> Ifc4x3_rc1::IfcSpatialElement::ContainsElements() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[937], 5)); } std::vector<::Ifc4x3_rc1::IfcRelServicesBuildings> Ifc4x3_rc1::IfcSpatialElement::ServicedBySystems() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[955], 5)); } std::vector<::Ifc4x3_rc1::IfcRelReferencedInSpatialStructure> Ifc4x3_rc1::IfcSpatialElement::ReferencesElements() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[953], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcSpatialElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1055]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpatialElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1055]); } // Ifc4x3_rc1::IfcSpatialElement::IfcSpatialElement(const std::weak_ptr& e) : IfcProduct(e) { } // Ifc4x3_rc1::IfcSpatialElement::IfcSpatialElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName) : IfcProduct(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); }; populate_derived(); } // Function implementations for IfcSpatialElementType std::optional< std::string > Ifc4x3_rc1::IfcSpatialElementType::ElementType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcSpatialElementType::setElementType(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSpatialElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1056]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpatialElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1056]); } // Ifc4x3_rc1::IfcSpatialElementType::IfcSpatialElementType(const std::weak_ptr& e) : IfcTypeProduct(e) { } // Ifc4x3_rc1::IfcSpatialElementType::IfcSpatialElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcTypeProduct(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcSpatialStructureElement std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > Ifc4x3_rc1::IfcSpatialStructureElement::CompositionType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcElementCompositionEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSpatialStructureElement::setCompositionType(const std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSpatialStructureElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1058]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpatialStructureElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1058]); } // Ifc4x3_rc1::IfcSpatialStructureElement::IfcSpatialStructureElement(const std::weak_ptr& e) : IfcSpatialElement(e) { } // Ifc4x3_rc1::IfcSpatialStructureElement::IfcSpatialStructureElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcElementCompositionEnum::Value > v9_CompositionType) : IfcSpatialElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_CompositionType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcElementCompositionEnum::Class(),(size_t)*v9_CompositionType))); }; populate_derived(); } // Function implementations for IfcSpatialStructureElementType // const IfcParse::entity& Ifc4x3_rc1::IfcSpatialStructureElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1059]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpatialStructureElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1059]); } // Ifc4x3_rc1::IfcSpatialStructureElementType::IfcSpatialStructureElementType(const std::weak_ptr& e) : IfcSpatialElementType(e) { } // Ifc4x3_rc1::IfcSpatialStructureElementType::IfcSpatialStructureElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType) : IfcSpatialElementType(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }; populate_derived(); } // Function implementations for IfcSpatialZone std::optional< ::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value > Ifc4x3_rc1::IfcSpatialZone::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSpatialZone::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSpatialZone::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1060]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpatialZone::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1060]); } // Ifc4x3_rc1::IfcSpatialZone::IfcSpatialZone(const std::weak_ptr& e) : IfcSpatialElement(e) { } // Ifc4x3_rc1::IfcSpatialZone::IfcSpatialZone(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_LongName, std::optional< ::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value > v9_PredefinedType) : IfcSpatialElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_LongName) {set_attribute_value(7, (*v8_LongName)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSpatialZoneType ::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value Ifc4x3_rc1::IfcSpatialZoneType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSpatialZoneType::setPredefinedType(const ::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< std::string > Ifc4x3_rc1::IfcSpatialZoneType::LongName() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcSpatialZoneType::setLongName(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSpatialZoneType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1061]); } const IfcParse::entity& Ifc4x3_rc1::IfcSpatialZoneType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1061]); } // Ifc4x3_rc1::IfcSpatialZoneType::IfcSpatialZoneType(const std::weak_ptr& e) : IfcSpatialElementType(e) { } // Ifc4x3_rc1::IfcSpatialZoneType::IfcSpatialZoneType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Value v10_PredefinedType, std::optional< std::string > v11_LongName) : IfcSpatialElementType(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSpatialZoneTypeEnum::Class(),(size_t)v10_PredefinedType))); if (v11_LongName) {set_attribute_value(10, (*v11_LongName)); }; populate_derived(); } // Function implementations for IfcSphere double Ifc4x3_rc1::IfcSphere::Radius() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSphere::setRadius(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcSphere::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1067]); } const IfcParse::entity& Ifc4x3_rc1::IfcSphere::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1067]); } // Ifc4x3_rc1::IfcSphere::IfcSphere(const std::weak_ptr& e) : IfcCsgPrimitive3D(e) { } // Ifc4x3_rc1::IfcSphere::IfcSphere(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position, double v2_Radius) : IfcCsgPrimitive3D(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_Radius));; populate_derived(); } // Function implementations for IfcSphericalSurface double Ifc4x3_rc1::IfcSphericalSurface::Radius() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSphericalSurface::setRadius(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcSphericalSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1068]); } const IfcParse::entity& Ifc4x3_rc1::IfcSphericalSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1068]); } // Ifc4x3_rc1::IfcSphericalSurface::IfcSphericalSurface(const std::weak_ptr& e) : IfcElementarySurface(e) { } // Ifc4x3_rc1::IfcSphericalSurface::IfcSphericalSurface(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position, double v2_Radius) : IfcElementarySurface(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_Radius));; populate_derived(); } // Function implementations for IfcStackTerminal std::optional< ::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value > Ifc4x3_rc1::IfcStackTerminal::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcStackTerminalTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcStackTerminal::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStackTerminal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1069]); } const IfcParse::entity& Ifc4x3_rc1::IfcStackTerminal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1069]); } // Ifc4x3_rc1::IfcStackTerminal::IfcStackTerminal(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcStackTerminal::IfcStackTerminal(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcStackTerminalType ::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value Ifc4x3_rc1::IfcStackTerminalType::PredefinedType() const { return ::Ifc4x3_rc1::IfcStackTerminalTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcStackTerminalType::setPredefinedType(const ::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcStackTerminalType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1070]); } const IfcParse::entity& Ifc4x3_rc1::IfcStackTerminalType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1070]); } // Ifc4x3_rc1::IfcStackTerminalType::IfcStackTerminalType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcStackTerminalType::IfcStackTerminalType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcStackTerminalTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcStair std::optional< ::Ifc4x3_rc1::IfcStairTypeEnum::Value > Ifc4x3_rc1::IfcStair::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcStairTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcStair::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcStairTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcStairTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStair::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1072]); } const IfcParse::entity& Ifc4x3_rc1::IfcStair::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1072]); } // Ifc4x3_rc1::IfcStair::IfcStair(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcStair::IfcStair(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcStairTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcStairTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcStairFlight std::optional< int > Ifc4x3_rc1::IfcStairFlight::NumberOfRisers() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } int v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcStairFlight::setNumberOfRisers(const std::optional< int >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< int > Ifc4x3_rc1::IfcStairFlight::NumberOfTreads() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } int v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcStairFlight::setNumberOfTreads(const std::optional< int >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcStairFlight::RiserHeight() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcStairFlight::setRiserHeight(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcStairFlight::TreadLength() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcStairFlight::setTreadLength(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< ::Ifc4x3_rc1::IfcStairFlightTypeEnum::Value > Ifc4x3_rc1::IfcStairFlight::PredefinedType() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcStairFlightTypeEnum::FromString(get_attribute_value(12)); } void Ifc4x3_rc1::IfcStairFlight::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcStairFlightTypeEnum::Value >& v) { if (v) {set_attribute_value(12, EnumerationReference(&::Ifc4x3_rc1::IfcStairFlightTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(12);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStairFlight::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1073]); } const IfcParse::entity& Ifc4x3_rc1::IfcStairFlight::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1073]); } // Ifc4x3_rc1::IfcStairFlight::IfcStairFlight(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcStairFlight::IfcStairFlight(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< int > v9_NumberOfRisers, std::optional< int > v10_NumberOfTreads, std::optional< double > v11_RiserHeight, std::optional< double > v12_TreadLength, std::optional< ::Ifc4x3_rc1::IfcStairFlightTypeEnum::Value > v13_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_NumberOfRisers) {set_attribute_value(8, (*v9_NumberOfRisers)); } if (v10_NumberOfTreads) {set_attribute_value(9, (*v10_NumberOfTreads)); } if (v11_RiserHeight) {set_attribute_value(10, (*v11_RiserHeight)); } if (v12_TreadLength) {set_attribute_value(11, (*v12_TreadLength)); } if (v13_PredefinedType) {set_attribute_value(12, (EnumerationReference(&::Ifc4x3_rc1::IfcStairFlightTypeEnum::Class(),(size_t)*v13_PredefinedType))); }; populate_derived(); } // Function implementations for IfcStairFlightType ::Ifc4x3_rc1::IfcStairFlightTypeEnum::Value Ifc4x3_rc1::IfcStairFlightType::PredefinedType() const { return ::Ifc4x3_rc1::IfcStairFlightTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcStairFlightType::setPredefinedType(const ::Ifc4x3_rc1::IfcStairFlightTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcStairFlightTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcStairFlightType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1074]); } const IfcParse::entity& Ifc4x3_rc1::IfcStairFlightType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1074]); } // Ifc4x3_rc1::IfcStairFlightType::IfcStairFlightType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcStairFlightType::IfcStairFlightType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcStairFlightTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcStairFlightTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcStairType ::Ifc4x3_rc1::IfcStairTypeEnum::Value Ifc4x3_rc1::IfcStairType::PredefinedType() const { return ::Ifc4x3_rc1::IfcStairTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcStairType::setPredefinedType(const ::Ifc4x3_rc1::IfcStairTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcStairTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcStairType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1076]); } const IfcParse::entity& Ifc4x3_rc1::IfcStairType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1076]); } // Ifc4x3_rc1::IfcStairType::IfcStairType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcStairType::IfcStairType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcStairTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcStairTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcStructuralAction std::optional< bool > Ifc4x3_rc1::IfcStructuralAction::DestabilizingLoad() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } bool v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcStructuralAction::setDestabilizingLoad(const std::optional< bool >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralAction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1079]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralAction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1079]); } // Ifc4x3_rc1::IfcStructuralAction::IfcStructuralAction(const std::weak_ptr& e) : IfcStructuralActivity(e) { } // Ifc4x3_rc1::IfcStructuralAction::IfcStructuralAction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal, std::optional< bool > v10_DestabilizingLoad) : IfcStructuralActivity(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal))); if (v10_DestabilizingLoad) {set_attribute_value(9, (*v10_DestabilizingLoad)); }; populate_derived(); } // Function implementations for IfcStructuralActivity ::Ifc4x3_rc1::IfcStructuralLoad Ifc4x3_rc1::IfcStructuralActivity::AppliedLoad() const { return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcStructuralLoad>(); } void Ifc4x3_rc1::IfcStructuralActivity::setAppliedLoad(const ::Ifc4x3_rc1::IfcStructuralLoad& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value Ifc4x3_rc1::IfcStructuralActivity::GlobalOrLocal() const { return ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcStructuralActivity::setGlobalOrLocal(const ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value& v) { set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(8); } std::vector<::Ifc4x3_rc1::IfcRelConnectsStructuralActivity> Ifc4x3_rc1::IfcStructuralActivity::AssignedToStructuralItem() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[933], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralActivity::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1080]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralActivity::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1080]); } // Ifc4x3_rc1::IfcStructuralActivity::IfcStructuralActivity(const std::weak_ptr& e) : IfcProduct(e) { } // Ifc4x3_rc1::IfcStructuralActivity::IfcStructuralActivity(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal) : IfcProduct(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal)));; populate_derived(); } // Function implementations for IfcStructuralAnalysisModel ::Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Value Ifc4x3_rc1::IfcStructuralAnalysisModel::PredefinedType() const { return ::Ifc4x3_rc1::IfcAnalysisModelTypeEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcStructuralAnalysisModel::setPredefinedType(const ::Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Value& v) { set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcStructuralAnalysisModel::OrientationOf2DPlane() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcAxis2Placement3D{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcStructuralAnalysisModel::setOrientationOf2DPlane(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< std::vector< ::Ifc4x3_rc1::IfcStructuralLoadGroup > > Ifc4x3_rc1::IfcStructuralAnalysisModel::LoadedBy() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcStructuralLoadGroup>(es); } void Ifc4x3_rc1::IfcStructuralAnalysisModel::setLoadedBy(const std::optional< std::vector< ::Ifc4x3_rc1::IfcStructuralLoadGroup > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcStructuralResultGroup > > Ifc4x3_rc1::IfcStructuralAnalysisModel::HasResults() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(8); return cast_vector<::Ifc4x3_rc1::IfcStructuralResultGroup>(es); } void Ifc4x3_rc1::IfcStructuralAnalysisModel::setHasResults(const std::optional< std::vector< ::Ifc4x3_rc1::IfcStructuralResultGroup > >& v) { if (v) {set_attribute_value(8, cast_vector(*v));} else {unset_attribute_value(8);} } ::Ifc4x3_rc1::IfcObjectPlacement Ifc4x3_rc1::IfcStructuralAnalysisModel::SharedPlacement() const { if(get_attribute_value(9).isNull()) { return ::Ifc4x3_rc1::IfcObjectPlacement{}; } return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcObjectPlacement>(); } void Ifc4x3_rc1::IfcStructuralAnalysisModel::setSharedPlacement(const ::Ifc4x3_rc1::IfcObjectPlacement& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralAnalysisModel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1082]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralAnalysisModel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1082]); } // Ifc4x3_rc1::IfcStructuralAnalysisModel::IfcStructuralAnalysisModel(const std::weak_ptr& e) : IfcSystem(e) { } // Ifc4x3_rc1::IfcStructuralAnalysisModel::IfcStructuralAnalysisModel(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Value v6_PredefinedType, ::Ifc4x3_rc1::IfcAxis2Placement3D v7_OrientationOf2DPlane, std::optional< std::vector< ::Ifc4x3_rc1::IfcStructuralLoadGroup > > v8_LoadedBy, std::optional< std::vector< ::Ifc4x3_rc1::IfcStructuralResultGroup > > v9_HasResults, ::Ifc4x3_rc1::IfcObjectPlacement v10_SharedPlacement) : IfcSystem(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcAnalysisModelTypeEnum::Class(),(size_t)v6_PredefinedType))); if (v7_OrientationOf2DPlane) {set_attribute_value(6, (*v7_OrientationOf2DPlane)); } if (v8_LoadedBy) {set_attribute_value(7, (*v8_LoadedBy)->generalize()); } if (v9_HasResults) {set_attribute_value(8, (*v9_HasResults)->generalize()); } if (v10_SharedPlacement) {set_attribute_value(9, (*v10_SharedPlacement)); }; populate_derived(); } // Function implementations for IfcStructuralConnection ::Ifc4x3_rc1::IfcBoundaryCondition Ifc4x3_rc1::IfcStructuralConnection::AppliedCondition() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcBoundaryCondition{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcBoundaryCondition>(); } void Ifc4x3_rc1::IfcStructuralConnection::setAppliedCondition(const ::Ifc4x3_rc1::IfcBoundaryCondition& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::vector<::Ifc4x3_rc1::IfcRelConnectsStructuralMember> Ifc4x3_rc1::IfcStructuralConnection::ConnectsStructuralMembers() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[934], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralConnection::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1083]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralConnection::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1083]); } // Ifc4x3_rc1::IfcStructuralConnection::IfcStructuralConnection(const std::weak_ptr& e) : IfcStructuralItem(e) { } // Ifc4x3_rc1::IfcStructuralConnection::IfcStructuralConnection(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcBoundaryCondition v8_AppliedCondition) : IfcStructuralItem(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_AppliedCondition) {set_attribute_value(7, (*v8_AppliedCondition)); }; populate_derived(); } // Function implementations for IfcStructuralConnectionCondition std::optional< std::string > Ifc4x3_rc1::IfcStructuralConnectionCondition::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcStructuralConnectionCondition::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralConnectionCondition::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1084]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralConnectionCondition::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1084]); } // Ifc4x3_rc1::IfcStructuralConnectionCondition::IfcStructuralConnectionCondition(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcStructuralConnectionCondition::IfcStructuralConnectionCondition(std::optional< std::string > v1_Name) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }; populate_derived(); } // Function implementations for IfcStructuralCurveAction std::optional< ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value > Ifc4x3_rc1::IfcStructuralCurveAction::ProjectedOrTrue() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcStructuralCurveAction::setProjectedOrTrue(const std::optional< ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value Ifc4x3_rc1::IfcStructuralCurveAction::PredefinedType() const { return ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcStructuralCurveAction::setPredefinedType(const ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveAction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1085]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveAction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1085]); } // Ifc4x3_rc1::IfcStructuralCurveAction::IfcStructuralCurveAction(const std::weak_ptr& e) : IfcStructuralAction(e) { } // Ifc4x3_rc1::IfcStructuralCurveAction::IfcStructuralCurveAction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal, std::optional< bool > v10_DestabilizingLoad, std::optional< ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value > v11_ProjectedOrTrue, ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value v12_PredefinedType) : IfcStructuralAction(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal))); if (v10_DestabilizingLoad) {set_attribute_value(9, (*v10_DestabilizingLoad)); } if (v11_ProjectedOrTrue) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Class(),(size_t)*v11_ProjectedOrTrue))); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcStructuralCurveConnection ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcStructuralCurveConnection::Axis() const { return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcStructuralCurveConnection::setAxis(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveConnection::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1087]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveConnection::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1087]); } // Ifc4x3_rc1::IfcStructuralCurveConnection::IfcStructuralCurveConnection(const std::weak_ptr& e) : IfcStructuralConnection(e) { } // Ifc4x3_rc1::IfcStructuralCurveConnection::IfcStructuralCurveConnection(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcBoundaryCondition v8_AppliedCondition, ::Ifc4x3_rc1::IfcDirection v9_Axis) : IfcStructuralConnection(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_AppliedCondition) {set_attribute_value(7, (*v8_AppliedCondition)); }set_attribute_value(8, (v9_Axis));; populate_derived(); } // Function implementations for IfcStructuralCurveMember ::Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Value Ifc4x3_rc1::IfcStructuralCurveMember::PredefinedType() const { return ::Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcStructuralCurveMember::setPredefinedType(const ::Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcStructuralCurveMember::Axis() const { return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcStructuralCurveMember::setAxis(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveMember::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1088]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveMember::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1088]); } // Ifc4x3_rc1::IfcStructuralCurveMember::IfcStructuralCurveMember(const std::weak_ptr& e) : IfcStructuralMember(e) { } // Ifc4x3_rc1::IfcStructuralCurveMember::IfcStructuralCurveMember(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Value v8_PredefinedType, ::Ifc4x3_rc1::IfcDirection v9_Axis) : IfcStructuralMember(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Class(),(size_t)v8_PredefinedType)));set_attribute_value(8, (v9_Axis));; populate_derived(); } // Function implementations for IfcStructuralCurveMemberVarying // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveMemberVarying::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1090]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveMemberVarying::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1090]); } // Ifc4x3_rc1::IfcStructuralCurveMemberVarying::IfcStructuralCurveMemberVarying(const std::weak_ptr& e) : IfcStructuralCurveMember(e) { } // Ifc4x3_rc1::IfcStructuralCurveMemberVarying::IfcStructuralCurveMemberVarying(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Value v8_PredefinedType, ::Ifc4x3_rc1::IfcDirection v9_Axis) : IfcStructuralCurveMember(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::Class(),(size_t)v8_PredefinedType)));set_attribute_value(8, (v9_Axis));; populate_derived(); } // Function implementations for IfcStructuralCurveReaction ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value Ifc4x3_rc1::IfcStructuralCurveReaction::PredefinedType() const { return ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcStructuralCurveReaction::setPredefinedType(const ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveReaction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1091]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralCurveReaction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1091]); } // Ifc4x3_rc1::IfcStructuralCurveReaction::IfcStructuralCurveReaction(const std::weak_ptr& e) : IfcStructuralReaction(e) { } // Ifc4x3_rc1::IfcStructuralCurveReaction::IfcStructuralCurveReaction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal, ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value v10_PredefinedType) : IfcStructuralReaction(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal)));set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcStructuralItem std::vector<::Ifc4x3_rc1::IfcRelConnectsStructuralActivity> Ifc4x3_rc1::IfcStructuralItem::AssignedStructuralActivity() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[933], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1092]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1092]); } // Ifc4x3_rc1::IfcStructuralItem::IfcStructuralItem(const std::weak_ptr& e) : IfcProduct(e) { } // Ifc4x3_rc1::IfcStructuralItem::IfcStructuralItem(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation) : IfcProduct(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }; populate_derived(); } // Function implementations for IfcStructuralLinearAction // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLinearAction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1093]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLinearAction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1093]); } // Ifc4x3_rc1::IfcStructuralLinearAction::IfcStructuralLinearAction(const std::weak_ptr& e) : IfcStructuralCurveAction(e) { } // Ifc4x3_rc1::IfcStructuralLinearAction::IfcStructuralLinearAction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal, std::optional< bool > v10_DestabilizingLoad, std::optional< ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value > v11_ProjectedOrTrue, ::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Value v12_PredefinedType) : IfcStructuralCurveAction(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal))); if (v10_DestabilizingLoad) {set_attribute_value(9, (*v10_DestabilizingLoad)); } if (v11_ProjectedOrTrue) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Class(),(size_t)*v11_ProjectedOrTrue))); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcStructuralLoad std::optional< std::string > Ifc4x3_rc1::IfcStructuralLoad::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcStructuralLoad::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoad::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1094]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoad::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1094]); } // Ifc4x3_rc1::IfcStructuralLoad::IfcStructuralLoad(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcStructuralLoad::IfcStructuralLoad(std::optional< std::string > v1_Name) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }; populate_derived(); } // Function implementations for IfcStructuralLoadCase std::optional< std::vector< double > /*[3:3]*/ > Ifc4x3_rc1::IfcStructuralLoadCase::SelfWeightCoefficients() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::vector< double > /*[3:3]*/ v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcStructuralLoadCase::setSelfWeightCoefficients(const std::optional< std::vector< double > /*[3:3]*/ >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1095]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1095]); } // Ifc4x3_rc1::IfcStructuralLoadCase::IfcStructuralLoadCase(const std::weak_ptr& e) : IfcStructuralLoadGroup(e) { } // Ifc4x3_rc1::IfcStructuralLoadCase::IfcStructuralLoadCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcLoadGroupTypeEnum::Value v6_PredefinedType, ::Ifc4x3_rc1::IfcActionTypeEnum::Value v7_ActionType, ::Ifc4x3_rc1::IfcActionSourceTypeEnum::Value v8_ActionSource, std::optional< double > v9_Coefficient, std::optional< std::string > v10_Purpose, std::optional< std::vector< double > /*[3:3]*/ > v11_SelfWeightCoefficients) : IfcStructuralLoadGroup(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcLoadGroupTypeEnum::Class(),(size_t)v6_PredefinedType)));set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcActionTypeEnum::Class(),(size_t)v7_ActionType)));set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcActionSourceTypeEnum::Class(),(size_t)v8_ActionSource))); if (v9_Coefficient) {set_attribute_value(8, (*v9_Coefficient)); } if (v10_Purpose) {set_attribute_value(9, (*v10_Purpose)); } if (v11_SelfWeightCoefficients) {set_attribute_value(10, (*v11_SelfWeightCoefficients)); }; populate_derived(); } // Function implementations for IfcStructuralLoadConfiguration std::vector< ::Ifc4x3_rc1::IfcStructuralLoadOrResult > Ifc4x3_rc1::IfcStructuralLoadConfiguration::Values() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcStructuralLoadOrResult>(es); } void Ifc4x3_rc1::IfcStructuralLoadConfiguration::setValues(const std::vector< ::Ifc4x3_rc1::IfcStructuralLoadOrResult >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } std::optional< std::vector< std::vector< double > > > Ifc4x3_rc1::IfcStructuralLoadConfiguration::Locations() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector< std::vector< double > > v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcStructuralLoadConfiguration::setLocations(const std::optional< std::vector< std::vector< double > > >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadConfiguration::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1096]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadConfiguration::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1096]); } // Ifc4x3_rc1::IfcStructuralLoadConfiguration::IfcStructuralLoadConfiguration(const std::weak_ptr& e) : IfcStructuralLoad(e) { } // Ifc4x3_rc1::IfcStructuralLoadConfiguration::IfcStructuralLoadConfiguration(std::optional< std::string > v1_Name, std::vector< ::Ifc4x3_rc1::IfcStructuralLoadOrResult > v2_Values, std::optional< std::vector< std::vector< double > > > v3_Locations) : IfcStructuralLoad(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (v2_Values)->generalize()); if (v3_Locations) {set_attribute_value(2, (*v3_Locations)); }; populate_derived(); } // Function implementations for IfcStructuralLoadGroup ::Ifc4x3_rc1::IfcLoadGroupTypeEnum::Value Ifc4x3_rc1::IfcStructuralLoadGroup::PredefinedType() const { return ::Ifc4x3_rc1::IfcLoadGroupTypeEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcStructuralLoadGroup::setPredefinedType(const ::Ifc4x3_rc1::IfcLoadGroupTypeEnum::Value& v) { set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcLoadGroupTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcActionTypeEnum::Value Ifc4x3_rc1::IfcStructuralLoadGroup::ActionType() const { return ::Ifc4x3_rc1::IfcActionTypeEnum::FromString(get_attribute_value(6)); } void Ifc4x3_rc1::IfcStructuralLoadGroup::setActionType(const ::Ifc4x3_rc1::IfcActionTypeEnum::Value& v) { set_attribute_value(6, EnumerationReference(&::Ifc4x3_rc1::IfcActionTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcActionSourceTypeEnum::Value Ifc4x3_rc1::IfcStructuralLoadGroup::ActionSource() const { return ::Ifc4x3_rc1::IfcActionSourceTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcStructuralLoadGroup::setActionSource(const ::Ifc4x3_rc1::IfcActionSourceTypeEnum::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcActionSourceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadGroup::Coefficient() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcStructuralLoadGroup::setCoefficient(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< std::string > Ifc4x3_rc1::IfcStructuralLoadGroup::Purpose() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::string v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcStructuralLoadGroup::setPurpose(const std::optional< std::string >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::vector<::Ifc4x3_rc1::IfcStructuralResultGroup> Ifc4x3_rc1::IfcStructuralLoadGroup::SourceOfResultGroup() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1113], 6)); } std::vector<::Ifc4x3_rc1::IfcStructuralAnalysisModel> Ifc4x3_rc1::IfcStructuralLoadGroup::LoadGroupFor() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1082], 7)); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadGroup::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1097]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadGroup::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1097]); } // Ifc4x3_rc1::IfcStructuralLoadGroup::IfcStructuralLoadGroup(const std::weak_ptr& e) : IfcGroup(e) { } // Ifc4x3_rc1::IfcStructuralLoadGroup::IfcStructuralLoadGroup(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcLoadGroupTypeEnum::Value v6_PredefinedType, ::Ifc4x3_rc1::IfcActionTypeEnum::Value v7_ActionType, ::Ifc4x3_rc1::IfcActionSourceTypeEnum::Value v8_ActionSource, std::optional< double > v9_Coefficient, std::optional< std::string > v10_Purpose) : IfcGroup(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcLoadGroupTypeEnum::Class(),(size_t)v6_PredefinedType)));set_attribute_value(6, (EnumerationReference(&::Ifc4x3_rc1::IfcActionTypeEnum::Class(),(size_t)v7_ActionType)));set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcActionSourceTypeEnum::Class(),(size_t)v8_ActionSource))); if (v9_Coefficient) {set_attribute_value(8, (*v9_Coefficient)); } if (v10_Purpose) {set_attribute_value(9, (*v10_Purpose)); }; populate_derived(); } // Function implementations for IfcStructuralLoadLinearForce std::optional< double > Ifc4x3_rc1::IfcStructuralLoadLinearForce::LinearForceX() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcStructuralLoadLinearForce::setLinearForceX(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadLinearForce::LinearForceY() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcStructuralLoadLinearForce::setLinearForceY(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadLinearForce::LinearForceZ() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcStructuralLoadLinearForce::setLinearForceZ(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadLinearForce::LinearMomentX() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcStructuralLoadLinearForce::setLinearMomentX(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadLinearForce::LinearMomentY() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcStructuralLoadLinearForce::setLinearMomentY(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadLinearForce::LinearMomentZ() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcStructuralLoadLinearForce::setLinearMomentZ(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadLinearForce::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1098]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadLinearForce::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1098]); } // Ifc4x3_rc1::IfcStructuralLoadLinearForce::IfcStructuralLoadLinearForce(const std::weak_ptr& e) : IfcStructuralLoadStatic(e) { } // Ifc4x3_rc1::IfcStructuralLoadLinearForce::IfcStructuralLoadLinearForce(std::optional< std::string > v1_Name, std::optional< double > v2_LinearForceX, std::optional< double > v3_LinearForceY, std::optional< double > v4_LinearForceZ, std::optional< double > v5_LinearMomentX, std::optional< double > v6_LinearMomentY, std::optional< double > v7_LinearMomentZ) : IfcStructuralLoadStatic(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_LinearForceX) {set_attribute_value(1, (*v2_LinearForceX)); } if (v3_LinearForceY) {set_attribute_value(2, (*v3_LinearForceY)); } if (v4_LinearForceZ) {set_attribute_value(3, (*v4_LinearForceZ)); } if (v5_LinearMomentX) {set_attribute_value(4, (*v5_LinearMomentX)); } if (v6_LinearMomentY) {set_attribute_value(5, (*v6_LinearMomentY)); } if (v7_LinearMomentZ) {set_attribute_value(6, (*v7_LinearMomentZ)); }; populate_derived(); } // Function implementations for IfcStructuralLoadOrResult // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadOrResult::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1099]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadOrResult::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1099]); } // Ifc4x3_rc1::IfcStructuralLoadOrResult::IfcStructuralLoadOrResult(const std::weak_ptr& e) : IfcStructuralLoad(e) { } // Ifc4x3_rc1::IfcStructuralLoadOrResult::IfcStructuralLoadOrResult(std::optional< std::string > v1_Name) : IfcStructuralLoad(const std::weak_ptr&(in_memory_attribute_storage(1))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }; populate_derived(); } // Function implementations for IfcStructuralLoadPlanarForce std::optional< double > Ifc4x3_rc1::IfcStructuralLoadPlanarForce::PlanarForceX() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcStructuralLoadPlanarForce::setPlanarForceX(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadPlanarForce::PlanarForceY() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcStructuralLoadPlanarForce::setPlanarForceY(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadPlanarForce::PlanarForceZ() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcStructuralLoadPlanarForce::setPlanarForceZ(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadPlanarForce::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1100]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadPlanarForce::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1100]); } // Ifc4x3_rc1::IfcStructuralLoadPlanarForce::IfcStructuralLoadPlanarForce(const std::weak_ptr& e) : IfcStructuralLoadStatic(e) { } // Ifc4x3_rc1::IfcStructuralLoadPlanarForce::IfcStructuralLoadPlanarForce(std::optional< std::string > v1_Name, std::optional< double > v2_PlanarForceX, std::optional< double > v3_PlanarForceY, std::optional< double > v4_PlanarForceZ) : IfcStructuralLoadStatic(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_PlanarForceX) {set_attribute_value(1, (*v2_PlanarForceX)); } if (v3_PlanarForceY) {set_attribute_value(2, (*v3_PlanarForceY)); } if (v4_PlanarForceZ) {set_attribute_value(3, (*v4_PlanarForceZ)); }; populate_derived(); } // Function implementations for IfcStructuralLoadSingleDisplacement std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::DisplacementX() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::setDisplacementX(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::DisplacementY() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::setDisplacementY(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::DisplacementZ() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::setDisplacementZ(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::RotationalDisplacementRX() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::setRotationalDisplacementRX(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::RotationalDisplacementRY() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::setRotationalDisplacementRY(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::RotationalDisplacementRZ() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::setRotationalDisplacementRZ(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1101]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1101]); } // Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::IfcStructuralLoadSingleDisplacement(const std::weak_ptr& e) : IfcStructuralLoadStatic(e) { } // Ifc4x3_rc1::IfcStructuralLoadSingleDisplacement::IfcStructuralLoadSingleDisplacement(std::optional< std::string > v1_Name, std::optional< double > v2_DisplacementX, std::optional< double > v3_DisplacementY, std::optional< double > v4_DisplacementZ, std::optional< double > v5_RotationalDisplacementRX, std::optional< double > v6_RotationalDisplacementRY, std::optional< double > v7_RotationalDisplacementRZ) : IfcStructuralLoadStatic(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DisplacementX) {set_attribute_value(1, (*v2_DisplacementX)); } if (v3_DisplacementY) {set_attribute_value(2, (*v3_DisplacementY)); } if (v4_DisplacementZ) {set_attribute_value(3, (*v4_DisplacementZ)); } if (v5_RotationalDisplacementRX) {set_attribute_value(4, (*v5_RotationalDisplacementRX)); } if (v6_RotationalDisplacementRY) {set_attribute_value(5, (*v6_RotationalDisplacementRY)); } if (v7_RotationalDisplacementRZ) {set_attribute_value(6, (*v7_RotationalDisplacementRZ)); }; populate_derived(); } // Function implementations for IfcStructuralLoadSingleDisplacementDistortion std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleDisplacementDistortion::Distortion() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleDisplacementDistortion::setDistortion(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadSingleDisplacementDistortion::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1102]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadSingleDisplacementDistortion::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1102]); } // Ifc4x3_rc1::IfcStructuralLoadSingleDisplacementDistortion::IfcStructuralLoadSingleDisplacementDistortion(const std::weak_ptr& e) : IfcStructuralLoadSingleDisplacement(e) { } // Ifc4x3_rc1::IfcStructuralLoadSingleDisplacementDistortion::IfcStructuralLoadSingleDisplacementDistortion(std::optional< std::string > v1_Name, std::optional< double > v2_DisplacementX, std::optional< double > v3_DisplacementY, std::optional< double > v4_DisplacementZ, std::optional< double > v5_RotationalDisplacementRX, std::optional< double > v6_RotationalDisplacementRY, std::optional< double > v7_RotationalDisplacementRZ, std::optional< double > v8_Distortion) : IfcStructuralLoadSingleDisplacement(const std::weak_ptr&(in_memory_attribute_storage(8))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DisplacementX) {set_attribute_value(1, (*v2_DisplacementX)); } if (v3_DisplacementY) {set_attribute_value(2, (*v3_DisplacementY)); } if (v4_DisplacementZ) {set_attribute_value(3, (*v4_DisplacementZ)); } if (v5_RotationalDisplacementRX) {set_attribute_value(4, (*v5_RotationalDisplacementRX)); } if (v6_RotationalDisplacementRY) {set_attribute_value(5, (*v6_RotationalDisplacementRY)); } if (v7_RotationalDisplacementRZ) {set_attribute_value(6, (*v7_RotationalDisplacementRZ)); } if (v8_Distortion) {set_attribute_value(7, (*v8_Distortion)); }; populate_derived(); } // Function implementations for IfcStructuralLoadSingleForce std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleForce::ForceX() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleForce::setForceX(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleForce::ForceY() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleForce::setForceY(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleForce::ForceZ() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleForce::setForceZ(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleForce::MomentX() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleForce::setMomentX(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleForce::MomentY() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleForce::setMomentY(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleForce::MomentZ() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleForce::setMomentZ(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadSingleForce::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1103]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadSingleForce::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1103]); } // Ifc4x3_rc1::IfcStructuralLoadSingleForce::IfcStructuralLoadSingleForce(const std::weak_ptr& e) : IfcStructuralLoadStatic(e) { } // Ifc4x3_rc1::IfcStructuralLoadSingleForce::IfcStructuralLoadSingleForce(std::optional< std::string > v1_Name, std::optional< double > v2_ForceX, std::optional< double > v3_ForceY, std::optional< double > v4_ForceZ, std::optional< double > v5_MomentX, std::optional< double > v6_MomentY, std::optional< double > v7_MomentZ) : IfcStructuralLoadStatic(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_ForceX) {set_attribute_value(1, (*v2_ForceX)); } if (v3_ForceY) {set_attribute_value(2, (*v3_ForceY)); } if (v4_ForceZ) {set_attribute_value(3, (*v4_ForceZ)); } if (v5_MomentX) {set_attribute_value(4, (*v5_MomentX)); } if (v6_MomentY) {set_attribute_value(5, (*v6_MomentY)); } if (v7_MomentZ) {set_attribute_value(6, (*v7_MomentZ)); }; populate_derived(); } // Function implementations for IfcStructuralLoadSingleForceWarping std::optional< double > Ifc4x3_rc1::IfcStructuralLoadSingleForceWarping::WarpingMoment() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcStructuralLoadSingleForceWarping::setWarpingMoment(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadSingleForceWarping::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1104]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadSingleForceWarping::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1104]); } // Ifc4x3_rc1::IfcStructuralLoadSingleForceWarping::IfcStructuralLoadSingleForceWarping(const std::weak_ptr& e) : IfcStructuralLoadSingleForce(e) { } // Ifc4x3_rc1::IfcStructuralLoadSingleForceWarping::IfcStructuralLoadSingleForceWarping(std::optional< std::string > v1_Name, std::optional< double > v2_ForceX, std::optional< double > v3_ForceY, std::optional< double > v4_ForceZ, std::optional< double > v5_MomentX, std::optional< double > v6_MomentY, std::optional< double > v7_MomentZ, std::optional< double > v8_WarpingMoment) : IfcStructuralLoadSingleForce(const std::weak_ptr&(in_memory_attribute_storage(8))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_ForceX) {set_attribute_value(1, (*v2_ForceX)); } if (v3_ForceY) {set_attribute_value(2, (*v3_ForceY)); } if (v4_ForceZ) {set_attribute_value(3, (*v4_ForceZ)); } if (v5_MomentX) {set_attribute_value(4, (*v5_MomentX)); } if (v6_MomentY) {set_attribute_value(5, (*v6_MomentY)); } if (v7_MomentZ) {set_attribute_value(6, (*v7_MomentZ)); } if (v8_WarpingMoment) {set_attribute_value(7, (*v8_WarpingMoment)); }; populate_derived(); } // Function implementations for IfcStructuralLoadStatic // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadStatic::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1105]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadStatic::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1105]); } // Ifc4x3_rc1::IfcStructuralLoadStatic::IfcStructuralLoadStatic(const std::weak_ptr& e) : IfcStructuralLoadOrResult(e) { } // Ifc4x3_rc1::IfcStructuralLoadStatic::IfcStructuralLoadStatic(std::optional< std::string > v1_Name) : IfcStructuralLoadOrResult(const std::weak_ptr&(in_memory_attribute_storage(1))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }; populate_derived(); } // Function implementations for IfcStructuralLoadTemperature std::optional< double > Ifc4x3_rc1::IfcStructuralLoadTemperature::DeltaTConstant() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcStructuralLoadTemperature::setDeltaTConstant(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadTemperature::DeltaTY() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcStructuralLoadTemperature::setDeltaTY(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcStructuralLoadTemperature::DeltaTZ() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcStructuralLoadTemperature::setDeltaTZ(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadTemperature::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1106]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralLoadTemperature::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1106]); } // Ifc4x3_rc1::IfcStructuralLoadTemperature::IfcStructuralLoadTemperature(const std::weak_ptr& e) : IfcStructuralLoadStatic(e) { } // Ifc4x3_rc1::IfcStructuralLoadTemperature::IfcStructuralLoadTemperature(std::optional< std::string > v1_Name, std::optional< double > v2_DeltaTConstant, std::optional< double > v3_DeltaTY, std::optional< double > v4_DeltaTZ) : IfcStructuralLoadStatic(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DeltaTConstant) {set_attribute_value(1, (*v2_DeltaTConstant)); } if (v3_DeltaTY) {set_attribute_value(2, (*v3_DeltaTY)); } if (v4_DeltaTZ) {set_attribute_value(3, (*v4_DeltaTZ)); }; populate_derived(); } // Function implementations for IfcStructuralMember std::vector<::Ifc4x3_rc1::IfcRelConnectsStructuralMember> Ifc4x3_rc1::IfcStructuralMember::ConnectedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[934], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralMember::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1107]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralMember::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1107]); } // Ifc4x3_rc1::IfcStructuralMember::IfcStructuralMember(const std::weak_ptr& e) : IfcStructuralItem(e) { } // Ifc4x3_rc1::IfcStructuralMember::IfcStructuralMember(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation) : IfcStructuralItem(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }; populate_derived(); } // Function implementations for IfcStructuralPlanarAction // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralPlanarAction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1108]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralPlanarAction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1108]); } // Ifc4x3_rc1::IfcStructuralPlanarAction::IfcStructuralPlanarAction(const std::weak_ptr& e) : IfcStructuralSurfaceAction(e) { } // Ifc4x3_rc1::IfcStructuralPlanarAction::IfcStructuralPlanarAction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal, std::optional< bool > v10_DestabilizingLoad, std::optional< ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value > v11_ProjectedOrTrue, ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value v12_PredefinedType) : IfcStructuralSurfaceAction(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal))); if (v10_DestabilizingLoad) {set_attribute_value(9, (*v10_DestabilizingLoad)); } if (v11_ProjectedOrTrue) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Class(),(size_t)*v11_ProjectedOrTrue))); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcStructuralPointAction // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralPointAction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1109]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralPointAction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1109]); } // Ifc4x3_rc1::IfcStructuralPointAction::IfcStructuralPointAction(const std::weak_ptr& e) : IfcStructuralAction(e) { } // Ifc4x3_rc1::IfcStructuralPointAction::IfcStructuralPointAction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal, std::optional< bool > v10_DestabilizingLoad) : IfcStructuralAction(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal))); if (v10_DestabilizingLoad) {set_attribute_value(9, (*v10_DestabilizingLoad)); }; populate_derived(); } // Function implementations for IfcStructuralPointConnection ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcStructuralPointConnection::ConditionCoordinateSystem() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcAxis2Placement3D{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcStructuralPointConnection::setConditionCoordinateSystem(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralPointConnection::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1110]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralPointConnection::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1110]); } // Ifc4x3_rc1::IfcStructuralPointConnection::IfcStructuralPointConnection(const std::weak_ptr& e) : IfcStructuralConnection(e) { } // Ifc4x3_rc1::IfcStructuralPointConnection::IfcStructuralPointConnection(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcBoundaryCondition v8_AppliedCondition, ::Ifc4x3_rc1::IfcAxis2Placement3D v9_ConditionCoordinateSystem) : IfcStructuralConnection(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_AppliedCondition) {set_attribute_value(7, (*v8_AppliedCondition)); } if (v9_ConditionCoordinateSystem) {set_attribute_value(8, (*v9_ConditionCoordinateSystem)); }; populate_derived(); } // Function implementations for IfcStructuralPointReaction // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralPointReaction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1111]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralPointReaction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1111]); } // Ifc4x3_rc1::IfcStructuralPointReaction::IfcStructuralPointReaction(const std::weak_ptr& e) : IfcStructuralReaction(e) { } // Ifc4x3_rc1::IfcStructuralPointReaction::IfcStructuralPointReaction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal) : IfcStructuralReaction(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal)));; populate_derived(); } // Function implementations for IfcStructuralReaction // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralReaction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1112]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralReaction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1112]); } // Ifc4x3_rc1::IfcStructuralReaction::IfcStructuralReaction(const std::weak_ptr& e) : IfcStructuralActivity(e) { } // Ifc4x3_rc1::IfcStructuralReaction::IfcStructuralReaction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal) : IfcStructuralActivity(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal)));; populate_derived(); } // Function implementations for IfcStructuralResultGroup ::Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Value Ifc4x3_rc1::IfcStructuralResultGroup::TheoryType() const { return ::Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcStructuralResultGroup::setTheoryType(const ::Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Value& v) { set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcStructuralLoadGroup Ifc4x3_rc1::IfcStructuralResultGroup::ResultForLoadGroup() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcStructuralLoadGroup{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcStructuralLoadGroup>(); } void Ifc4x3_rc1::IfcStructuralResultGroup::setResultForLoadGroup(const ::Ifc4x3_rc1::IfcStructuralLoadGroup& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } bool Ifc4x3_rc1::IfcStructuralResultGroup::IsLinear() const { bool v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcStructuralResultGroup::setIsLinear(const bool& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::vector<::Ifc4x3_rc1::IfcStructuralAnalysisModel> Ifc4x3_rc1::IfcStructuralResultGroup::ResultGroupFor() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1082], 8)); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralResultGroup::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1113]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralResultGroup::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1113]); } // Ifc4x3_rc1::IfcStructuralResultGroup::IfcStructuralResultGroup(const std::weak_ptr& e) : IfcGroup(e) { } // Ifc4x3_rc1::IfcStructuralResultGroup::IfcStructuralResultGroup(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Value v6_TheoryType, ::Ifc4x3_rc1::IfcStructuralLoadGroup v7_ResultForLoadGroup, bool v8_IsLinear) : IfcGroup(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::Class(),(size_t)v6_TheoryType))); if (v7_ResultForLoadGroup) {set_attribute_value(6, (*v7_ResultForLoadGroup)); }set_attribute_value(7, (v8_IsLinear));; populate_derived(); } // Function implementations for IfcStructuralSurfaceAction std::optional< ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value > Ifc4x3_rc1::IfcStructuralSurfaceAction::ProjectedOrTrue() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcStructuralSurfaceAction::setProjectedOrTrue(const std::optional< ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value Ifc4x3_rc1::IfcStructuralSurfaceAction::PredefinedType() const { return ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcStructuralSurfaceAction::setPredefinedType(const ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceAction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1114]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceAction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1114]); } // Ifc4x3_rc1::IfcStructuralSurfaceAction::IfcStructuralSurfaceAction(const std::weak_ptr& e) : IfcStructuralAction(e) { } // Ifc4x3_rc1::IfcStructuralSurfaceAction::IfcStructuralSurfaceAction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal, std::optional< bool > v10_DestabilizingLoad, std::optional< ::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Value > v11_ProjectedOrTrue, ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value v12_PredefinedType) : IfcStructuralAction(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal))); if (v10_DestabilizingLoad) {set_attribute_value(9, (*v10_DestabilizingLoad)); } if (v11_ProjectedOrTrue) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::Class(),(size_t)*v11_ProjectedOrTrue))); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcStructuralSurfaceConnection // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceConnection::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1116]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceConnection::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1116]); } // Ifc4x3_rc1::IfcStructuralSurfaceConnection::IfcStructuralSurfaceConnection(const std::weak_ptr& e) : IfcStructuralConnection(e) { } // Ifc4x3_rc1::IfcStructuralSurfaceConnection::IfcStructuralSurfaceConnection(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcBoundaryCondition v8_AppliedCondition) : IfcStructuralConnection(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_AppliedCondition) {set_attribute_value(7, (*v8_AppliedCondition)); }; populate_derived(); } // Function implementations for IfcStructuralSurfaceMember ::Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Value Ifc4x3_rc1::IfcStructuralSurfaceMember::PredefinedType() const { return ::Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcStructuralSurfaceMember::setPredefinedType(const ::Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } std::optional< double > Ifc4x3_rc1::IfcStructuralSurfaceMember::Thickness() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcStructuralSurfaceMember::setThickness(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceMember::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1117]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceMember::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1117]); } // Ifc4x3_rc1::IfcStructuralSurfaceMember::IfcStructuralSurfaceMember(const std::weak_ptr& e) : IfcStructuralMember(e) { } // Ifc4x3_rc1::IfcStructuralSurfaceMember::IfcStructuralSurfaceMember(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Value v8_PredefinedType, std::optional< double > v9_Thickness) : IfcStructuralMember(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Class(),(size_t)v8_PredefinedType))); if (v9_Thickness) {set_attribute_value(8, (*v9_Thickness)); }; populate_derived(); } // Function implementations for IfcStructuralSurfaceMemberVarying // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceMemberVarying::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1119]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceMemberVarying::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1119]); } // Ifc4x3_rc1::IfcStructuralSurfaceMemberVarying::IfcStructuralSurfaceMemberVarying(const std::weak_ptr& e) : IfcStructuralSurfaceMember(e) { } // Ifc4x3_rc1::IfcStructuralSurfaceMemberVarying::IfcStructuralSurfaceMemberVarying(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Value v8_PredefinedType, std::optional< double > v9_Thickness) : IfcStructuralSurfaceMember(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::Class(),(size_t)v8_PredefinedType))); if (v9_Thickness) {set_attribute_value(8, (*v9_Thickness)); }; populate_derived(); } // Function implementations for IfcStructuralSurfaceReaction ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value Ifc4x3_rc1::IfcStructuralSurfaceReaction::PredefinedType() const { return ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcStructuralSurfaceReaction::setPredefinedType(const ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceReaction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1120]); } const IfcParse::entity& Ifc4x3_rc1::IfcStructuralSurfaceReaction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1120]); } // Ifc4x3_rc1::IfcStructuralSurfaceReaction::IfcStructuralSurfaceReaction(const std::weak_ptr& e) : IfcStructuralReaction(e) { } // Ifc4x3_rc1::IfcStructuralSurfaceReaction::IfcStructuralSurfaceReaction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, ::Ifc4x3_rc1::IfcStructuralLoad v8_AppliedLoad, ::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Value v9_GlobalOrLocal, ::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Value v10_PredefinedType) : IfcStructuralReaction(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); }set_attribute_value(7, (v8_AppliedLoad));set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcGlobalOrLocalEnum::Class(),(size_t)v9_GlobalOrLocal)));set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcStyleModel // const IfcParse::entity& Ifc4x3_rc1::IfcStyleModel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1124]); } const IfcParse::entity& Ifc4x3_rc1::IfcStyleModel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1124]); } // Ifc4x3_rc1::IfcStyleModel::IfcStyleModel(const std::weak_ptr& e) : IfcRepresentation(e) { } // Ifc4x3_rc1::IfcStyleModel::IfcStyleModel(::Ifc4x3_rc1::IfcRepresentationContext v1_ContextOfItems, std::optional< std::string > v2_RepresentationIdentifier, std::optional< std::string > v3_RepresentationType, std::vector< ::Ifc4x3_rc1::IfcRepresentationItem > v4_Items) : IfcRepresentation(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_ContextOfItems)); if (v2_RepresentationIdentifier) {set_attribute_value(1, (*v2_RepresentationIdentifier)); } if (v3_RepresentationType) {set_attribute_value(2, (*v3_RepresentationType)); }set_attribute_value(3, (v4_Items)->generalize());; populate_derived(); } // Function implementations for IfcStyledItem ::Ifc4x3_rc1::IfcRepresentationItem Ifc4x3_rc1::IfcStyledItem::Item() const { if(get_attribute_value(0).isNull()) { return ::Ifc4x3_rc1::IfcRepresentationItem{}; } return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcRepresentationItem>(); } void Ifc4x3_rc1::IfcStyledItem::setItem(const ::Ifc4x3_rc1::IfcRepresentationItem& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcStyleAssignmentSelect > Ifc4x3_rc1::IfcStyledItem::Styles() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcStyleAssignmentSelect>(es); } void Ifc4x3_rc1::IfcStyledItem::setStyles(const std::vector< ::Ifc4x3_rc1::IfcStyleAssignmentSelect >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcStyledItem::Name() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcStyledItem::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcStyledItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1122]); } const IfcParse::entity& Ifc4x3_rc1::IfcStyledItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1122]); } // Ifc4x3_rc1::IfcStyledItem::IfcStyledItem(const std::weak_ptr& e) : IfcRepresentationItem(e) { } // Ifc4x3_rc1::IfcStyledItem::IfcStyledItem(::Ifc4x3_rc1::IfcRepresentationItem v1_Item, std::vector< ::Ifc4x3_rc1::IfcStyleAssignmentSelect > v2_Styles, std::optional< std::string > v3_Name) : IfcRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Item) {set_attribute_value(0, (*v1_Item)); }set_attribute_value(1, (v2_Styles)->generalize()); if (v3_Name) {set_attribute_value(2, (*v3_Name)); }; populate_derived(); } // Function implementations for IfcStyledRepresentation // const IfcParse::entity& Ifc4x3_rc1::IfcStyledRepresentation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1123]); } const IfcParse::entity& Ifc4x3_rc1::IfcStyledRepresentation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1123]); } // Ifc4x3_rc1::IfcStyledRepresentation::IfcStyledRepresentation(const std::weak_ptr& e) : IfcStyleModel(e) { } // Ifc4x3_rc1::IfcStyledRepresentation::IfcStyledRepresentation(::Ifc4x3_rc1::IfcRepresentationContext v1_ContextOfItems, std::optional< std::string > v2_RepresentationIdentifier, std::optional< std::string > v3_RepresentationType, std::vector< ::Ifc4x3_rc1::IfcRepresentationItem > v4_Items) : IfcStyleModel(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_ContextOfItems)); if (v2_RepresentationIdentifier) {set_attribute_value(1, (*v2_RepresentationIdentifier)); } if (v3_RepresentationType) {set_attribute_value(2, (*v3_RepresentationType)); }set_attribute_value(3, (v4_Items)->generalize());; populate_derived(); } // Function implementations for IfcSubContractResource std::optional< ::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value > Ifc4x3_rc1::IfcSubContractResource::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcSubContractResource::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSubContractResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1125]); } const IfcParse::entity& Ifc4x3_rc1::IfcSubContractResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1125]); } // Ifc4x3_rc1::IfcSubContractResource::IfcSubContractResource(const std::weak_ptr& e) : IfcConstructionResource(e) { } // Ifc4x3_rc1::IfcSubContractResource::IfcSubContractResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, ::Ifc4x3_rc1::IfcResourceTime v8_Usage, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v9_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v10_BaseQuantity, std::optional< ::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value > v11_PredefinedType) : IfcConstructionResource(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_Usage) {set_attribute_value(7, (*v8_Usage)); } if (v9_BaseCosts) {set_attribute_value(8, (*v9_BaseCosts)->generalize()); } if (v10_BaseQuantity) {set_attribute_value(9, (*v10_BaseQuantity)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Class(),(size_t)*v11_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSubContractResourceType ::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value Ifc4x3_rc1::IfcSubContractResourceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcSubContractResourceType::setPredefinedType(const ::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value& v) { set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcSubContractResourceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1126]); } const IfcParse::entity& Ifc4x3_rc1::IfcSubContractResourceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1126]); } // Ifc4x3_rc1::IfcSubContractResourceType::IfcSubContractResourceType(const std::weak_ptr& e) : IfcConstructionResourceType(e) { } // Ifc4x3_rc1::IfcSubContractResourceType::IfcSubContractResourceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ResourceType, std::optional< std::vector< ::Ifc4x3_rc1::IfcAppliedValue > > v10_BaseCosts, ::Ifc4x3_rc1::IfcPhysicalQuantity v11_BaseQuantity, ::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Value v12_PredefinedType) : IfcConstructionResourceType(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ResourceType) {set_attribute_value(8, (*v9_ResourceType)); } if (v10_BaseCosts) {set_attribute_value(9, (*v10_BaseCosts)->generalize()); } if (v11_BaseQuantity) {set_attribute_value(10, (*v11_BaseQuantity)); }set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcSubContractResourceTypeEnum::Class(),(size_t)v12_PredefinedType)));; populate_derived(); } // Function implementations for IfcSubedge ::Ifc4x3_rc1::IfcEdge Ifc4x3_rc1::IfcSubedge::ParentEdge() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcEdge>(); } void Ifc4x3_rc1::IfcSubedge::setParentEdge(const ::Ifc4x3_rc1::IfcEdge& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcSubedge::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1128]); } const IfcParse::entity& Ifc4x3_rc1::IfcSubedge::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1128]); } // Ifc4x3_rc1::IfcSubedge::IfcSubedge(const std::weak_ptr& e) : IfcEdge(e) { } // Ifc4x3_rc1::IfcSubedge::IfcSubedge(::Ifc4x3_rc1::IfcVertex v1_EdgeStart, ::Ifc4x3_rc1::IfcVertex v2_EdgeEnd, ::Ifc4x3_rc1::IfcEdge v3_ParentEdge) : IfcEdge(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_EdgeStart));set_attribute_value(1, (v2_EdgeEnd));set_attribute_value(2, (v3_ParentEdge));; populate_derived(); } // Function implementations for IfcSurface // const IfcParse::entity& Ifc4x3_rc1::IfcSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1129]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1129]); } // Ifc4x3_rc1::IfcSurface::IfcSurface(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcSurface::IfcSurface() : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcSurfaceCurve ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcSurfaceCurve::Curve3D() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcSurfaceCurve::setCurve3D(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcPcurve > Ifc4x3_rc1::IfcSurfaceCurve::AssociatedGeometry() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcPcurve>(es); } void Ifc4x3_rc1::IfcSurfaceCurve::setAssociatedGeometry(const std::vector< ::Ifc4x3_rc1::IfcPcurve >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value Ifc4x3_rc1::IfcSurfaceCurve::MasterRepresentation() const { return ::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::FromString(get_attribute_value(2)); } void Ifc4x3_rc1::IfcSurfaceCurve::setMasterRepresentation(const ::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value& v) { set_attribute_value(2, EnumerationReference(&::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Class(), (size_t) v));if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1130]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1130]); } // Ifc4x3_rc1::IfcSurfaceCurve::IfcSurfaceCurve(const std::weak_ptr& e) : IfcCurve(e) { } // Ifc4x3_rc1::IfcSurfaceCurve::IfcSurfaceCurve(::Ifc4x3_rc1::IfcCurve v1_Curve3D, std::vector< ::Ifc4x3_rc1::IfcPcurve > v2_AssociatedGeometry, ::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation) : IfcCurve(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Curve3D));set_attribute_value(1, (v2_AssociatedGeometry)->generalize());set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::Class(),(size_t)v3_MasterRepresentation)));; populate_derived(); } // Function implementations for IfcSurfaceCurveSweptAreaSolid ::Ifc4x3_rc1::IfcSurface Ifc4x3_rc1::IfcSurfaceCurveSweptAreaSolid::ReferenceSurface() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcSurface>(); } void Ifc4x3_rc1::IfcSurfaceCurveSweptAreaSolid::setReferenceSurface(const ::Ifc4x3_rc1::IfcSurface& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceCurveSweptAreaSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1131]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceCurveSweptAreaSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1131]); } // Ifc4x3_rc1::IfcSurfaceCurveSweptAreaSolid::IfcSurfaceCurveSweptAreaSolid(const std::weak_ptr& e) : IfcDirectrixCurveSweptAreaSolid(e) { } // Ifc4x3_rc1::IfcSurfaceCurveSweptAreaSolid::IfcSurfaceCurveSweptAreaSolid(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcCurve v3_Directrix, std::optional< double > v4_StartParam, std::optional< double > v5_EndParam, ::Ifc4x3_rc1::IfcSurface v6_ReferenceSurface) : IfcDirectrixCurveSweptAreaSolid(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_Directrix)); if (v4_StartParam) {set_attribute_value(3, (*v4_StartParam)); } if (v5_EndParam) {set_attribute_value(4, (*v5_EndParam)); }set_attribute_value(5, (v6_ReferenceSurface));; populate_derived(); } // Function implementations for IfcSurfaceFeature std::optional< ::Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Value > Ifc4x3_rc1::IfcSurfaceFeature::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSurfaceFeature::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceFeature::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1132]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceFeature::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1132]); } // Ifc4x3_rc1::IfcSurfaceFeature::IfcSurfaceFeature(const std::weak_ptr& e) : IfcFeatureElement(e) { } // Ifc4x3_rc1::IfcSurfaceFeature::IfcSurfaceFeature(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Value > v9_PredefinedType) : IfcFeatureElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSurfaceOfLinearExtrusion ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcSurfaceOfLinearExtrusion::ExtrudedDirection() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcSurfaceOfLinearExtrusion::setExtrudedDirection(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } double Ifc4x3_rc1::IfcSurfaceOfLinearExtrusion::Depth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcSurfaceOfLinearExtrusion::setDepth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceOfLinearExtrusion::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1134]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceOfLinearExtrusion::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1134]); } // Ifc4x3_rc1::IfcSurfaceOfLinearExtrusion::IfcSurfaceOfLinearExtrusion(const std::weak_ptr& e) : IfcSweptSurface(e) { } // Ifc4x3_rc1::IfcSurfaceOfLinearExtrusion::IfcSurfaceOfLinearExtrusion(::Ifc4x3_rc1::IfcProfileDef v1_SweptCurve, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcDirection v3_ExtrudedDirection, double v4_Depth) : IfcSweptSurface(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_SweptCurve)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_ExtrudedDirection));set_attribute_value(3, (v4_Depth));; populate_derived(); } // Function implementations for IfcSurfaceOfRevolution ::Ifc4x3_rc1::IfcAxis1Placement Ifc4x3_rc1::IfcSurfaceOfRevolution::AxisPosition() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcAxis1Placement>(); } void Ifc4x3_rc1::IfcSurfaceOfRevolution::setAxisPosition(const ::Ifc4x3_rc1::IfcAxis1Placement& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceOfRevolution::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1135]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceOfRevolution::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1135]); } // Ifc4x3_rc1::IfcSurfaceOfRevolution::IfcSurfaceOfRevolution(const std::weak_ptr& e) : IfcSweptSurface(e) { } // Ifc4x3_rc1::IfcSurfaceOfRevolution::IfcSurfaceOfRevolution(::Ifc4x3_rc1::IfcProfileDef v1_SweptCurve, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position, ::Ifc4x3_rc1::IfcAxis1Placement v3_AxisPosition) : IfcSweptSurface(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_SweptCurve)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }set_attribute_value(2, (v3_AxisPosition));; populate_derived(); } // Function implementations for IfcSurfaceReinforcementArea std::optional< std::vector< double > /*[2:3]*/ > Ifc4x3_rc1::IfcSurfaceReinforcementArea::SurfaceReinforcement1() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::vector< double > /*[2:3]*/ v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSurfaceReinforcementArea::setSurfaceReinforcement1(const std::optional< std::vector< double > /*[2:3]*/ >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::vector< double > /*[2:3]*/ > Ifc4x3_rc1::IfcSurfaceReinforcementArea::SurfaceReinforcement2() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector< double > /*[2:3]*/ v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcSurfaceReinforcementArea::setSurfaceReinforcement2(const std::optional< std::vector< double > /*[2:3]*/ >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcSurfaceReinforcementArea::ShearReinforcement() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcSurfaceReinforcementArea::setShearReinforcement(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceReinforcementArea::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1137]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceReinforcementArea::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1137]); } // Ifc4x3_rc1::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(const std::weak_ptr& e) : IfcStructuralLoadOrResult(e) { } // Ifc4x3_rc1::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(std::optional< std::string > v1_Name, std::optional< std::vector< double > /*[2:3]*/ > v2_SurfaceReinforcement1, std::optional< std::vector< double > /*[2:3]*/ > v3_SurfaceReinforcement2, std::optional< double > v4_ShearReinforcement) : IfcStructuralLoadOrResult(const std::weak_ptr&(in_memory_attribute_storage(4))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_SurfaceReinforcement1) {set_attribute_value(1, (*v2_SurfaceReinforcement1)); } if (v3_SurfaceReinforcement2) {set_attribute_value(2, (*v3_SurfaceReinforcement2)); } if (v4_ShearReinforcement) {set_attribute_value(3, (*v4_ShearReinforcement)); }; populate_derived(); } // Function implementations for IfcSurfaceStyle ::Ifc4x3_rc1::IfcSurfaceSide::Value Ifc4x3_rc1::IfcSurfaceStyle::Side() const { return ::Ifc4x3_rc1::IfcSurfaceSide::FromString(get_attribute_value(1)); } void Ifc4x3_rc1::IfcSurfaceStyle::setSide(const ::Ifc4x3_rc1::IfcSurfaceSide::Value& v) { set_attribute_value(1, EnumerationReference(&::Ifc4x3_rc1::IfcSurfaceSide::Class(), (size_t) v));if constexpr (false)unset_attribute_value(1); } std::vector< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect > Ifc4x3_rc1::IfcSurfaceStyle::Styles() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcSurfaceStyleElementSelect>(es); } void Ifc4x3_rc1::IfcSurfaceStyle::setStyles(const std::vector< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1139]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1139]); } // Ifc4x3_rc1::IfcSurfaceStyle::IfcSurfaceStyle(const std::weak_ptr& e) : IfcPresentationStyle(e) { } // Ifc4x3_rc1::IfcSurfaceStyle::IfcSurfaceStyle(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcSurfaceSide::Value v2_Side, std::vector< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect > v3_Styles) : IfcPresentationStyle(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); }set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcSurfaceSide::Class(),(size_t)v2_Side)));set_attribute_value(2, (v3_Styles)->generalize());; populate_derived(); } // Function implementations for IfcSurfaceStyleLighting ::Ifc4x3_rc1::IfcColourRgb Ifc4x3_rc1::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcColourRgb>(); } void Ifc4x3_rc1::IfcSurfaceStyleLighting::setDiffuseTransmissionColour(const ::Ifc4x3_rc1::IfcColourRgb& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcColourRgb Ifc4x3_rc1::IfcSurfaceStyleLighting::DiffuseReflectionColour() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcColourRgb>(); } void Ifc4x3_rc1::IfcSurfaceStyleLighting::setDiffuseReflectionColour(const ::Ifc4x3_rc1::IfcColourRgb& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcColourRgb Ifc4x3_rc1::IfcSurfaceStyleLighting::TransmissionColour() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcColourRgb>(); } void Ifc4x3_rc1::IfcSurfaceStyleLighting::setTransmissionColour(const ::Ifc4x3_rc1::IfcColourRgb& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcColourRgb Ifc4x3_rc1::IfcSurfaceStyleLighting::ReflectanceColour() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcColourRgb>(); } void Ifc4x3_rc1::IfcSurfaceStyleLighting::setReflectanceColour(const ::Ifc4x3_rc1::IfcColourRgb& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleLighting::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1141]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleLighting::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1141]); } // Ifc4x3_rc1::IfcSurfaceStyleLighting::IfcSurfaceStyleLighting(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcSurfaceStyleLighting::IfcSurfaceStyleLighting(::Ifc4x3_rc1::IfcColourRgb v1_DiffuseTransmissionColour, ::Ifc4x3_rc1::IfcColourRgb v2_DiffuseReflectionColour, ::Ifc4x3_rc1::IfcColourRgb v3_TransmissionColour, ::Ifc4x3_rc1::IfcColourRgb v4_ReflectanceColour) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_DiffuseTransmissionColour));set_attribute_value(1, (v2_DiffuseReflectionColour));set_attribute_value(2, (v3_TransmissionColour));set_attribute_value(3, (v4_ReflectanceColour));; populate_derived(); } // Function implementations for IfcSurfaceStyleRefraction std::optional< double > Ifc4x3_rc1::IfcSurfaceStyleRefraction::RefractionIndex() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } double v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcSurfaceStyleRefraction::setRefractionIndex(const std::optional< double >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< double > Ifc4x3_rc1::IfcSurfaceStyleRefraction::DispersionFactor() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSurfaceStyleRefraction::setDispersionFactor(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleRefraction::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1142]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleRefraction::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1142]); } // Ifc4x3_rc1::IfcSurfaceStyleRefraction::IfcSurfaceStyleRefraction(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcSurfaceStyleRefraction::IfcSurfaceStyleRefraction(std::optional< double > v1_RefractionIndex, std::optional< double > v2_DispersionFactor) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { if (v1_RefractionIndex) {set_attribute_value(0, (*v1_RefractionIndex)); } if (v2_DispersionFactor) {set_attribute_value(1, (*v2_DispersionFactor)); }; populate_derived(); } // Function implementations for IfcSurfaceStyleRendering ::Ifc4x3_rc1::IfcColourOrFactor Ifc4x3_rc1::IfcSurfaceStyleRendering::DiffuseColour() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcColourOrFactor{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcColourOrFactor>(); } void Ifc4x3_rc1::IfcSurfaceStyleRendering::setDiffuseColour(const ::Ifc4x3_rc1::IfcColourOrFactor& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcColourOrFactor Ifc4x3_rc1::IfcSurfaceStyleRendering::TransmissionColour() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcColourOrFactor{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcColourOrFactor>(); } void Ifc4x3_rc1::IfcSurfaceStyleRendering::setTransmissionColour(const ::Ifc4x3_rc1::IfcColourOrFactor& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcColourOrFactor Ifc4x3_rc1::IfcSurfaceStyleRendering::DiffuseTransmissionColour() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcColourOrFactor{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcColourOrFactor>(); } void Ifc4x3_rc1::IfcSurfaceStyleRendering::setDiffuseTransmissionColour(const ::Ifc4x3_rc1::IfcColourOrFactor& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcColourOrFactor Ifc4x3_rc1::IfcSurfaceStyleRendering::ReflectionColour() const { if(get_attribute_value(5).isNull()) { return ::Ifc4x3_rc1::IfcColourOrFactor{}; } return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcColourOrFactor>(); } void Ifc4x3_rc1::IfcSurfaceStyleRendering::setReflectionColour(const ::Ifc4x3_rc1::IfcColourOrFactor& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } ::Ifc4x3_rc1::IfcColourOrFactor Ifc4x3_rc1::IfcSurfaceStyleRendering::SpecularColour() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcColourOrFactor{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcColourOrFactor>(); } void Ifc4x3_rc1::IfcSurfaceStyleRendering::setSpecularColour(const ::Ifc4x3_rc1::IfcColourOrFactor& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcSpecularHighlightSelect Ifc4x3_rc1::IfcSurfaceStyleRendering::SpecularHighlight() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcSpecularHighlightSelect{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcSpecularHighlightSelect>(); } void Ifc4x3_rc1::IfcSurfaceStyleRendering::setSpecularHighlight(const ::Ifc4x3_rc1::IfcSpecularHighlightSelect& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } ::Ifc4x3_rc1::IfcReflectanceMethodEnum::Value Ifc4x3_rc1::IfcSurfaceStyleRendering::ReflectanceMethod() const { return ::Ifc4x3_rc1::IfcReflectanceMethodEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSurfaceStyleRendering::setReflectanceMethod(const ::Ifc4x3_rc1::IfcReflectanceMethodEnum::Value& v) { set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcReflectanceMethodEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleRendering::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1143]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleRendering::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1143]); } // Ifc4x3_rc1::IfcSurfaceStyleRendering::IfcSurfaceStyleRendering(const std::weak_ptr& e) : IfcSurfaceStyleShading(e) { } // Ifc4x3_rc1::IfcSurfaceStyleRendering::IfcSurfaceStyleRendering(::Ifc4x3_rc1::IfcColourRgb v1_SurfaceColour, std::optional< double > v2_Transparency, ::Ifc4x3_rc1::IfcColourOrFactor v3_DiffuseColour, ::Ifc4x3_rc1::IfcColourOrFactor v4_TransmissionColour, ::Ifc4x3_rc1::IfcColourOrFactor v5_DiffuseTransmissionColour, ::Ifc4x3_rc1::IfcColourOrFactor v6_ReflectionColour, ::Ifc4x3_rc1::IfcColourOrFactor v7_SpecularColour, ::Ifc4x3_rc1::IfcSpecularHighlightSelect v8_SpecularHighlight, ::Ifc4x3_rc1::IfcReflectanceMethodEnum::Value v9_ReflectanceMethod) : IfcSurfaceStyleShading(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_SurfaceColour)); if (v2_Transparency) {set_attribute_value(1, (*v2_Transparency)); } if (v3_DiffuseColour) {set_attribute_value(2, (*v3_DiffuseColour)); } if (v4_TransmissionColour) {set_attribute_value(3, (*v4_TransmissionColour)); } if (v5_DiffuseTransmissionColour) {set_attribute_value(4, (*v5_DiffuseTransmissionColour)); } if (v6_ReflectionColour) {set_attribute_value(5, (*v6_ReflectionColour)); } if (v7_SpecularColour) {set_attribute_value(6, (*v7_SpecularColour)); } if (v8_SpecularHighlight) {set_attribute_value(7, (*v8_SpecularHighlight)); }set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcReflectanceMethodEnum::Class(),(size_t)v9_ReflectanceMethod)));; populate_derived(); } // Function implementations for IfcSurfaceStyleShading ::Ifc4x3_rc1::IfcColourRgb Ifc4x3_rc1::IfcSurfaceStyleShading::SurfaceColour() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcColourRgb>(); } void Ifc4x3_rc1::IfcSurfaceStyleShading::setSurfaceColour(const ::Ifc4x3_rc1::IfcColourRgb& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< double > Ifc4x3_rc1::IfcSurfaceStyleShading::Transparency() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSurfaceStyleShading::setTransparency(const std::optional< double >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleShading::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1144]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleShading::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1144]); } // Ifc4x3_rc1::IfcSurfaceStyleShading::IfcSurfaceStyleShading(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcSurfaceStyleShading::IfcSurfaceStyleShading(::Ifc4x3_rc1::IfcColourRgb v1_SurfaceColour, std::optional< double > v2_Transparency) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_SurfaceColour)); if (v2_Transparency) {set_attribute_value(1, (*v2_Transparency)); }; populate_derived(); } // Function implementations for IfcSurfaceStyleWithTextures std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture > Ifc4x3_rc1::IfcSurfaceStyleWithTextures::Textures() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcSurfaceTexture>(es); } void Ifc4x3_rc1::IfcSurfaceStyleWithTextures::setTextures(const std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleWithTextures::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1145]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyleWithTextures::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1145]); } // Ifc4x3_rc1::IfcSurfaceStyleWithTextures::IfcSurfaceStyleWithTextures(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcSurfaceStyleWithTextures::IfcSurfaceStyleWithTextures(std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture > v1_Textures) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Textures)->generalize());; populate_derived(); } // Function implementations for IfcSurfaceTexture bool Ifc4x3_rc1::IfcSurfaceTexture::RepeatS() const { bool v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcSurfaceTexture::setRepeatS(const bool& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } bool Ifc4x3_rc1::IfcSurfaceTexture::RepeatT() const { bool v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSurfaceTexture::setRepeatT(const bool& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcSurfaceTexture::Mode() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcSurfaceTexture::setMode(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D Ifc4x3_rc1::IfcSurfaceTexture::TextureTransform() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcCartesianTransformationOperator2D>(); } void Ifc4x3_rc1::IfcSurfaceTexture::setTextureTransform(const ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcSurfaceTexture::Parameter() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcSurfaceTexture::setParameter(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::vector<::Ifc4x3_rc1::IfcTextureCoordinate> Ifc4x3_rc1::IfcSurfaceTexture::IsMappedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1197], 0)); } std::vector<::Ifc4x3_rc1::IfcSurfaceStyleWithTextures> Ifc4x3_rc1::IfcSurfaceTexture::UsedInStyles() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[1145], 0)); } // const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceTexture::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1146]); } const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceTexture::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1146]); } // Ifc4x3_rc1::IfcSurfaceTexture::IfcSurfaceTexture(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcSurfaceTexture::IfcSurfaceTexture(bool v1_RepeatS, bool v2_RepeatT, std::optional< std::string > v3_Mode, ::Ifc4x3_rc1::IfcCartesianTransformationOperator2D v4_TextureTransform, std::optional< std::vector< std::string > /*[1:?]*/ > v5_Parameter) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_RepeatS));set_attribute_value(1, (v2_RepeatT)); if (v3_Mode) {set_attribute_value(2, (*v3_Mode)); } if (v4_TextureTransform) {set_attribute_value(3, (*v4_TextureTransform)); } if (v5_Parameter) {set_attribute_value(4, (*v5_Parameter)); }; populate_derived(); } // Function implementations for IfcSweptAreaSolid ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcSweptAreaSolid::SweptArea() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcSweptAreaSolid::setSweptArea(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcSweptAreaSolid::Position() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcAxis2Placement3D{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcSweptAreaSolid::setPosition(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcSweptAreaSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1147]); } const IfcParse::entity& Ifc4x3_rc1::IfcSweptAreaSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1147]); } // Ifc4x3_rc1::IfcSweptAreaSolid::IfcSweptAreaSolid(const std::weak_ptr& e) : IfcSolidModel(e) { } // Ifc4x3_rc1::IfcSweptAreaSolid::IfcSweptAreaSolid(::Ifc4x3_rc1::IfcProfileDef v1_SweptArea, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position) : IfcSolidModel(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_SweptArea)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }; populate_derived(); } // Function implementations for IfcSweptDiskSolid ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcSweptDiskSolid::Directrix() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcSweptDiskSolid::setDirectrix(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcSweptDiskSolid::Radius() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcSweptDiskSolid::setRadius(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< double > Ifc4x3_rc1::IfcSweptDiskSolid::InnerRadius() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcSweptDiskSolid::setInnerRadius(const std::optional< double >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< double > Ifc4x3_rc1::IfcSweptDiskSolid::StartParam() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcSweptDiskSolid::setStartParam(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcSweptDiskSolid::EndParam() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcSweptDiskSolid::setEndParam(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSweptDiskSolid::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1148]); } const IfcParse::entity& Ifc4x3_rc1::IfcSweptDiskSolid::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1148]); } // Ifc4x3_rc1::IfcSweptDiskSolid::IfcSweptDiskSolid(const std::weak_ptr& e) : IfcSolidModel(e) { } // Ifc4x3_rc1::IfcSweptDiskSolid::IfcSweptDiskSolid(::Ifc4x3_rc1::IfcCurve v1_Directrix, double v2_Radius, std::optional< double > v3_InnerRadius, std::optional< double > v4_StartParam, std::optional< double > v5_EndParam) : IfcSolidModel(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Directrix));set_attribute_value(1, (v2_Radius)); if (v3_InnerRadius) {set_attribute_value(2, (*v3_InnerRadius)); } if (v4_StartParam) {set_attribute_value(3, (*v4_StartParam)); } if (v5_EndParam) {set_attribute_value(4, (*v5_EndParam)); }; populate_derived(); } // Function implementations for IfcSweptDiskSolidPolygonal std::optional< double > Ifc4x3_rc1::IfcSweptDiskSolidPolygonal::FilletRadius() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcSweptDiskSolidPolygonal::setFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSweptDiskSolidPolygonal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1149]); } const IfcParse::entity& Ifc4x3_rc1::IfcSweptDiskSolidPolygonal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1149]); } // Ifc4x3_rc1::IfcSweptDiskSolidPolygonal::IfcSweptDiskSolidPolygonal(const std::weak_ptr& e) : IfcSweptDiskSolid(e) { } // Ifc4x3_rc1::IfcSweptDiskSolidPolygonal::IfcSweptDiskSolidPolygonal(::Ifc4x3_rc1::IfcCurve v1_Directrix, double v2_Radius, std::optional< double > v3_InnerRadius, std::optional< double > v4_StartParam, std::optional< double > v5_EndParam, std::optional< double > v6_FilletRadius) : IfcSweptDiskSolid(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_Directrix));set_attribute_value(1, (v2_Radius)); if (v3_InnerRadius) {set_attribute_value(2, (*v3_InnerRadius)); } if (v4_StartParam) {set_attribute_value(3, (*v4_StartParam)); } if (v5_EndParam) {set_attribute_value(4, (*v5_EndParam)); } if (v6_FilletRadius) {set_attribute_value(5, (*v6_FilletRadius)); }; populate_derived(); } // Function implementations for IfcSweptSurface ::Ifc4x3_rc1::IfcProfileDef Ifc4x3_rc1::IfcSweptSurface::SweptCurve() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcProfileDef>(); } void Ifc4x3_rc1::IfcSweptSurface::setSweptCurve(const ::Ifc4x3_rc1::IfcProfileDef& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcAxis2Placement3D Ifc4x3_rc1::IfcSweptSurface::Position() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcAxis2Placement3D{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcAxis2Placement3D>(); } void Ifc4x3_rc1::IfcSweptSurface::setPosition(const ::Ifc4x3_rc1::IfcAxis2Placement3D& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcSweptSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1150]); } const IfcParse::entity& Ifc4x3_rc1::IfcSweptSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1150]); } // Ifc4x3_rc1::IfcSweptSurface::IfcSweptSurface(const std::weak_ptr& e) : IfcSurface(e) { } // Ifc4x3_rc1::IfcSweptSurface::IfcSweptSurface(::Ifc4x3_rc1::IfcProfileDef v1_SweptCurve, ::Ifc4x3_rc1::IfcAxis2Placement3D v2_Position) : IfcSurface(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_SweptCurve)); if (v2_Position) {set_attribute_value(1, (*v2_Position)); }; populate_derived(); } // Function implementations for IfcSwitchingDevice std::optional< ::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value > Ifc4x3_rc1::IfcSwitchingDevice::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSwitchingDevice::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSwitchingDevice::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1151]); } const IfcParse::entity& Ifc4x3_rc1::IfcSwitchingDevice::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1151]); } // Ifc4x3_rc1::IfcSwitchingDevice::IfcSwitchingDevice(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcSwitchingDevice::IfcSwitchingDevice(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSwitchingDeviceType ::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value Ifc4x3_rc1::IfcSwitchingDeviceType::PredefinedType() const { return ::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSwitchingDeviceType::setPredefinedType(const ::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcSwitchingDeviceType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1152]); } const IfcParse::entity& Ifc4x3_rc1::IfcSwitchingDeviceType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1152]); } // Ifc4x3_rc1::IfcSwitchingDeviceType::IfcSwitchingDeviceType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcSwitchingDeviceType::IfcSwitchingDeviceType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcSystem std::vector<::Ifc4x3_rc1::IfcRelServicesBuildings> Ifc4x3_rc1::IfcSystem::ServicesBuildings() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[955], 4)); } std::vector<::Ifc4x3_rc1::IfcRelReferencedInSpatialStructure> Ifc4x3_rc1::IfcSystem::ServicesFacilities() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[953], 4)); } // const IfcParse::entity& Ifc4x3_rc1::IfcSystem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1154]); } const IfcParse::entity& Ifc4x3_rc1::IfcSystem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1154]); } // Ifc4x3_rc1::IfcSystem::IfcSystem(const std::weak_ptr& e) : IfcGroup(e) { } // Ifc4x3_rc1::IfcSystem::IfcSystem(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType) : IfcGroup(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); }; populate_derived(); } // Function implementations for IfcSystemFurnitureElement std::optional< ::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value > Ifc4x3_rc1::IfcSystemFurnitureElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcSystemFurnitureElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSystemFurnitureElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1155]); } const IfcParse::entity& Ifc4x3_rc1::IfcSystemFurnitureElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1155]); } // Ifc4x3_rc1::IfcSystemFurnitureElement::IfcSystemFurnitureElement(const std::weak_ptr& e) : IfcFurnishingElement(e) { } // Ifc4x3_rc1::IfcSystemFurnitureElement::IfcSystemFurnitureElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value > v9_PredefinedType) : IfcFurnishingElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcSystemFurnitureElementType std::optional< ::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value > Ifc4x3_rc1::IfcSystemFurnitureElementType::PredefinedType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcSystemFurnitureElementType::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcSystemFurnitureElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1156]); } const IfcParse::entity& Ifc4x3_rc1::IfcSystemFurnitureElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1156]); } // Ifc4x3_rc1::IfcSystemFurnitureElementType::IfcSystemFurnitureElementType(const std::weak_ptr& e) : IfcFurnishingElementType(e) { } // Ifc4x3_rc1::IfcSystemFurnitureElementType::IfcSystemFurnitureElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, std::optional< ::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Value > v10_PredefinedType) : IfcFurnishingElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); } if (v10_PredefinedType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::Class(),(size_t)*v10_PredefinedType))); }; populate_derived(); } // Function implementations for IfcTShapeProfileDef double Ifc4x3_rc1::IfcTShapeProfileDef::Depth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setDepth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcTShapeProfileDef::FlangeWidth() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setFlangeWidth(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcTShapeProfileDef::WebThickness() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setWebThickness(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcTShapeProfileDef::FlangeThickness() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setFlangeThickness(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< double > Ifc4x3_rc1::IfcTShapeProfileDef::FilletRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcTShapeProfileDef::FlangeEdgeRadius() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setFlangeEdgeRadius(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< double > Ifc4x3_rc1::IfcTShapeProfileDef::WebEdgeRadius() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setWebEdgeRadius(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcTShapeProfileDef::WebSlope() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setWebSlope(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcTShapeProfileDef::FlangeSlope() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcTShapeProfileDef::setFlangeSlope(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTShapeProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1241]); } const IfcParse::entity& Ifc4x3_rc1::IfcTShapeProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1241]); } // Ifc4x3_rc1::IfcTShapeProfileDef::IfcTShapeProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcTShapeProfileDef::IfcTShapeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, std::optional< double > v8_FilletRadius, std::optional< double > v9_FlangeEdgeRadius, std::optional< double > v10_WebEdgeRadius, std::optional< double > v11_WebSlope, std::optional< double > v12_FlangeSlope) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_Depth));set_attribute_value(4, (v5_FlangeWidth));set_attribute_value(5, (v6_WebThickness));set_attribute_value(6, (v7_FlangeThickness)); if (v8_FilletRadius) {set_attribute_value(7, (*v8_FilletRadius)); } if (v9_FlangeEdgeRadius) {set_attribute_value(8, (*v9_FlangeEdgeRadius)); } if (v10_WebEdgeRadius) {set_attribute_value(9, (*v10_WebEdgeRadius)); } if (v11_WebSlope) {set_attribute_value(10, (*v11_WebSlope)); } if (v12_FlangeSlope) {set_attribute_value(11, (*v12_FlangeSlope)); }; populate_derived(); } // Function implementations for IfcTable std::optional< std::string > Ifc4x3_rc1::IfcTable::Name() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcTable::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcTableRow > > Ifc4x3_rc1::IfcTable::Rows() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcTableRow>(es); } void Ifc4x3_rc1::IfcTable::setRows(const std::optional< std::vector< ::Ifc4x3_rc1::IfcTableRow > >& v) { if (v) {set_attribute_value(1, cast_vector(*v));} else {unset_attribute_value(1);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcTableColumn > > Ifc4x3_rc1::IfcTable::Columns() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcTableColumn>(es); } void Ifc4x3_rc1::IfcTable::setColumns(const std::optional< std::vector< ::Ifc4x3_rc1::IfcTableColumn > >& v) { if (v) {set_attribute_value(2, cast_vector(*v));} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTable::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1158]); } const IfcParse::entity& Ifc4x3_rc1::IfcTable::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1158]); } // Ifc4x3_rc1::IfcTable::IfcTable(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcTable::IfcTable(std::optional< std::string > v1_Name, std::optional< std::vector< ::Ifc4x3_rc1::IfcTableRow > > v2_Rows, std::optional< std::vector< ::Ifc4x3_rc1::IfcTableColumn > > v3_Columns) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(3))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_Rows) {set_attribute_value(1, (*v2_Rows)->generalize()); } if (v3_Columns) {set_attribute_value(2, (*v3_Columns)->generalize()); }; populate_derived(); } // Function implementations for IfcTableColumn std::optional< std::string > Ifc4x3_rc1::IfcTableColumn::Identifier() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcTableColumn::setIdentifier(const std::optional< std::string >& v) { if (v) {set_attribute_value(0, *v);} else {unset_attribute_value(0);} } std::optional< std::string > Ifc4x3_rc1::IfcTableColumn::Name() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcTableColumn::setName(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcTableColumn::Description() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcTableColumn::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcTableColumn::Unit() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcTableColumn::setUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcReference Ifc4x3_rc1::IfcTableColumn::ReferencePath() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcReference{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcReference>(); } void Ifc4x3_rc1::IfcTableColumn::setReferencePath(const ::Ifc4x3_rc1::IfcReference& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcTableColumn::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1159]); } const IfcParse::entity& Ifc4x3_rc1::IfcTableColumn::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1159]); } // Ifc4x3_rc1::IfcTableColumn::IfcTableColumn(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcTableColumn::IfcTableColumn(std::optional< std::string > v1_Identifier, std::optional< std::string > v2_Name, std::optional< std::string > v3_Description, ::Ifc4x3_rc1::IfcUnit v4_Unit, ::Ifc4x3_rc1::IfcReference v5_ReferencePath) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Identifier) {set_attribute_value(0, (*v1_Identifier)); } if (v2_Name) {set_attribute_value(1, (*v2_Name)); } if (v3_Description) {set_attribute_value(2, (*v3_Description)); } if (v4_Unit) {set_attribute_value(3, (*v4_Unit)); } if (v5_ReferencePath) {set_attribute_value(4, (*v5_ReferencePath)); }; populate_derived(); } // Function implementations for IfcTableRow std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > Ifc4x3_rc1::IfcTableRow::RowCells() const { if(get_attribute_value(0).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcValue>(es); } void Ifc4x3_rc1::IfcTableRow::setRowCells(const std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > >& v) { if (v) {set_attribute_value(0, cast_vector(*v));} else {unset_attribute_value(0);} } std::optional< bool > Ifc4x3_rc1::IfcTableRow::IsHeading() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } bool v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcTableRow::setIsHeading(const std::optional< bool >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTableRow::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1160]); } const IfcParse::entity& Ifc4x3_rc1::IfcTableRow::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1160]); } // Ifc4x3_rc1::IfcTableRow::IfcTableRow(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcTableRow::IfcTableRow(std::optional< std::vector< ::Ifc4x3_rc1::IfcValue > > v1_RowCells, std::optional< bool > v2_IsHeading) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { if (v1_RowCells) {set_attribute_value(0, (*v1_RowCells)->generalize()); } if (v2_IsHeading) {set_attribute_value(1, (*v2_IsHeading)); }; populate_derived(); } // Function implementations for IfcTank std::optional< ::Ifc4x3_rc1::IfcTankTypeEnum::Value > Ifc4x3_rc1::IfcTank::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcTankTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcTank::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcTankTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcTankTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTank::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1161]); } const IfcParse::entity& Ifc4x3_rc1::IfcTank::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1161]); } // Ifc4x3_rc1::IfcTank::IfcTank(const std::weak_ptr& e) : IfcFlowStorageDevice(e) { } // Ifc4x3_rc1::IfcTank::IfcTank(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcTankTypeEnum::Value > v9_PredefinedType) : IfcFlowStorageDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcTankTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcTankType ::Ifc4x3_rc1::IfcTankTypeEnum::Value Ifc4x3_rc1::IfcTankType::PredefinedType() const { return ::Ifc4x3_rc1::IfcTankTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTankType::setPredefinedType(const ::Ifc4x3_rc1::IfcTankTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTankTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcTankType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1162]); } const IfcParse::entity& Ifc4x3_rc1::IfcTankType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1162]); } // Ifc4x3_rc1::IfcTankType::IfcTankType(const std::weak_ptr& e) : IfcFlowStorageDeviceType(e) { } // Ifc4x3_rc1::IfcTankType::IfcTankType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcTankTypeEnum::Value v10_PredefinedType) : IfcFlowStorageDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTankTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcTask std::optional< std::string > Ifc4x3_rc1::IfcTask::Status() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcTask::setStatus(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcTask::WorkMethod() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcTask::setWorkMethod(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } bool Ifc4x3_rc1::IfcTask::IsMilestone() const { bool v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcTask::setIsMilestone(const bool& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } std::optional< int > Ifc4x3_rc1::IfcTask::Priority() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } int v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcTask::setPriority(const std::optional< int >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } ::Ifc4x3_rc1::IfcTaskTime Ifc4x3_rc1::IfcTask::TaskTime() const { if(get_attribute_value(11).isNull()) { return ::Ifc4x3_rc1::IfcTaskTime{}; } return ((express::Base)(get_attribute_value(11))).as<::Ifc4x3_rc1::IfcTaskTime>(); } void Ifc4x3_rc1::IfcTask::setTaskTime(const ::Ifc4x3_rc1::IfcTaskTime& v) { set_attribute_value(11, v);if constexpr (false)unset_attribute_value(11); } std::optional< ::Ifc4x3_rc1::IfcTaskTypeEnum::Value > Ifc4x3_rc1::IfcTask::PredefinedType() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcTaskTypeEnum::FromString(get_attribute_value(12)); } void Ifc4x3_rc1::IfcTask::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcTaskTypeEnum::Value >& v) { if (v) {set_attribute_value(12, EnumerationReference(&::Ifc4x3_rc1::IfcTaskTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(12);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTask::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1164]); } const IfcParse::entity& Ifc4x3_rc1::IfcTask::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1164]); } // Ifc4x3_rc1::IfcTask::IfcTask(const std::weak_ptr& e) : IfcProcess(e) { } // Ifc4x3_rc1::IfcTask::IfcTask(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::string > v7_LongDescription, std::optional< std::string > v8_Status, std::optional< std::string > v9_WorkMethod, bool v10_IsMilestone, std::optional< int > v11_Priority, ::Ifc4x3_rc1::IfcTaskTime v12_TaskTime, std::optional< ::Ifc4x3_rc1::IfcTaskTypeEnum::Value > v13_PredefinedType) : IfcProcess(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_LongDescription) {set_attribute_value(6, (*v7_LongDescription)); } if (v8_Status) {set_attribute_value(7, (*v8_Status)); } if (v9_WorkMethod) {set_attribute_value(8, (*v9_WorkMethod)); }set_attribute_value(9, (v10_IsMilestone)); if (v11_Priority) {set_attribute_value(10, (*v11_Priority)); } if (v12_TaskTime) {set_attribute_value(11, (*v12_TaskTime)); } if (v13_PredefinedType) {set_attribute_value(12, (EnumerationReference(&::Ifc4x3_rc1::IfcTaskTypeEnum::Class(),(size_t)*v13_PredefinedType))); }; populate_derived(); } // Function implementations for IfcTaskTime std::optional< ::Ifc4x3_rc1::IfcTaskDurationEnum::Value > Ifc4x3_rc1::IfcTaskTime::DurationType() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcTaskDurationEnum::FromString(get_attribute_value(3)); } void Ifc4x3_rc1::IfcTaskTime::setDurationType(const std::optional< ::Ifc4x3_rc1::IfcTaskDurationEnum::Value >& v) { if (v) {set_attribute_value(3, EnumerationReference(&::Ifc4x3_rc1::IfcTaskDurationEnum::Class(), (size_t) *v));} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::ScheduleDuration() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTaskTime::setScheduleDuration(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::ScheduleStart() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcTaskTime::setScheduleStart(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::ScheduleFinish() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcTaskTime::setScheduleFinish(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::EarlyStart() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcTaskTime::setEarlyStart(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::EarlyFinish() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcTaskTime::setEarlyFinish(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::LateStart() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::string v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcTaskTime::setLateStart(const std::optional< std::string >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::LateFinish() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcTaskTime::setLateFinish(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::FreeFloat() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } std::string v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcTaskTime::setFreeFloat(const std::optional< std::string >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::TotalFloat() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcTaskTime::setTotalFloat(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< bool > Ifc4x3_rc1::IfcTaskTime::IsCritical() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } bool v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcTaskTime::setIsCritical(const std::optional< bool >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::StatusTime() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } std::string v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcTaskTime::setStatusTime(const std::optional< std::string >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::ActualDuration() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } std::string v = get_attribute_value(15); return v; } void Ifc4x3_rc1::IfcTaskTime::setActualDuration(const std::optional< std::string >& v) { if (v) {set_attribute_value(15, *v);} else {unset_attribute_value(15);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::ActualStart() const { if(get_attribute_value(16).isNull()) { return std::nullopt; } std::string v = get_attribute_value(16); return v; } void Ifc4x3_rc1::IfcTaskTime::setActualStart(const std::optional< std::string >& v) { if (v) {set_attribute_value(16, *v);} else {unset_attribute_value(16);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::ActualFinish() const { if(get_attribute_value(17).isNull()) { return std::nullopt; } std::string v = get_attribute_value(17); return v; } void Ifc4x3_rc1::IfcTaskTime::setActualFinish(const std::optional< std::string >& v) { if (v) {set_attribute_value(17, *v);} else {unset_attribute_value(17);} } std::optional< std::string > Ifc4x3_rc1::IfcTaskTime::RemainingTime() const { if(get_attribute_value(18).isNull()) { return std::nullopt; } std::string v = get_attribute_value(18); return v; } void Ifc4x3_rc1::IfcTaskTime::setRemainingTime(const std::optional< std::string >& v) { if (v) {set_attribute_value(18, *v);} else {unset_attribute_value(18);} } std::optional< double > Ifc4x3_rc1::IfcTaskTime::Completion() const { if(get_attribute_value(19).isNull()) { return std::nullopt; } double v = get_attribute_value(19); return v; } void Ifc4x3_rc1::IfcTaskTime::setCompletion(const std::optional< double >& v) { if (v) {set_attribute_value(19, *v);} else {unset_attribute_value(19);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTaskTime::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1166]); } const IfcParse::entity& Ifc4x3_rc1::IfcTaskTime::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1166]); } // Ifc4x3_rc1::IfcTaskTime::IfcTaskTime(const std::weak_ptr& e) : IfcSchedulingTime(e) { } // Ifc4x3_rc1::IfcTaskTime::IfcTaskTime(std::optional< std::string > v1_Name, std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value > v2_DataOrigin, std::optional< std::string > v3_UserDefinedDataOrigin, std::optional< ::Ifc4x3_rc1::IfcTaskDurationEnum::Value > v4_DurationType, std::optional< std::string > v5_ScheduleDuration, std::optional< std::string > v6_ScheduleStart, std::optional< std::string > v7_ScheduleFinish, std::optional< std::string > v8_EarlyStart, std::optional< std::string > v9_EarlyFinish, std::optional< std::string > v10_LateStart, std::optional< std::string > v11_LateFinish, std::optional< std::string > v12_FreeFloat, std::optional< std::string > v13_TotalFloat, std::optional< bool > v14_IsCritical, std::optional< std::string > v15_StatusTime, std::optional< std::string > v16_ActualDuration, std::optional< std::string > v17_ActualStart, std::optional< std::string > v18_ActualFinish, std::optional< std::string > v19_RemainingTime, std::optional< double > v20_Completion) : IfcSchedulingTime(const std::weak_ptr&(in_memory_attribute_storage(20))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DataOrigin) {set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)*v2_DataOrigin))); } if (v3_UserDefinedDataOrigin) {set_attribute_value(2, (*v3_UserDefinedDataOrigin)); } if (v4_DurationType) {set_attribute_value(3, (EnumerationReference(&::Ifc4x3_rc1::IfcTaskDurationEnum::Class(),(size_t)*v4_DurationType))); } if (v5_ScheduleDuration) {set_attribute_value(4, (*v5_ScheduleDuration)); } if (v6_ScheduleStart) {set_attribute_value(5, (*v6_ScheduleStart)); } if (v7_ScheduleFinish) {set_attribute_value(6, (*v7_ScheduleFinish)); } if (v8_EarlyStart) {set_attribute_value(7, (*v8_EarlyStart)); } if (v9_EarlyFinish) {set_attribute_value(8, (*v9_EarlyFinish)); } if (v10_LateStart) {set_attribute_value(9, (*v10_LateStart)); } if (v11_LateFinish) {set_attribute_value(10, (*v11_LateFinish)); } if (v12_FreeFloat) {set_attribute_value(11, (*v12_FreeFloat)); } if (v13_TotalFloat) {set_attribute_value(12, (*v13_TotalFloat)); } if (v14_IsCritical) {set_attribute_value(13, (*v14_IsCritical)); } if (v15_StatusTime) {set_attribute_value(14, (*v15_StatusTime)); } if (v16_ActualDuration) {set_attribute_value(15, (*v16_ActualDuration)); } if (v17_ActualStart) {set_attribute_value(16, (*v17_ActualStart)); } if (v18_ActualFinish) {set_attribute_value(17, (*v18_ActualFinish)); } if (v19_RemainingTime) {set_attribute_value(18, (*v19_RemainingTime)); } if (v20_Completion) {set_attribute_value(19, (*v20_Completion)); }; populate_derived(); } // Function implementations for IfcTaskTimeRecurring ::Ifc4x3_rc1::IfcRecurrencePattern Ifc4x3_rc1::IfcTaskTimeRecurring::Recurrence() const { return ((express::Base)(get_attribute_value(20))).as<::Ifc4x3_rc1::IfcRecurrencePattern>(); } void Ifc4x3_rc1::IfcTaskTimeRecurring::setRecurrence(const ::Ifc4x3_rc1::IfcRecurrencePattern& v) { set_attribute_value(20, v);if constexpr (false)unset_attribute_value(20); } // const IfcParse::entity& Ifc4x3_rc1::IfcTaskTimeRecurring::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1167]); } const IfcParse::entity& Ifc4x3_rc1::IfcTaskTimeRecurring::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1167]); } // Ifc4x3_rc1::IfcTaskTimeRecurring::IfcTaskTimeRecurring(const std::weak_ptr& e) : IfcTaskTime(e) { } // Ifc4x3_rc1::IfcTaskTimeRecurring::IfcTaskTimeRecurring(std::optional< std::string > v1_Name, std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value > v2_DataOrigin, std::optional< std::string > v3_UserDefinedDataOrigin, std::optional< ::Ifc4x3_rc1::IfcTaskDurationEnum::Value > v4_DurationType, std::optional< std::string > v5_ScheduleDuration, std::optional< std::string > v6_ScheduleStart, std::optional< std::string > v7_ScheduleFinish, std::optional< std::string > v8_EarlyStart, std::optional< std::string > v9_EarlyFinish, std::optional< std::string > v10_LateStart, std::optional< std::string > v11_LateFinish, std::optional< std::string > v12_FreeFloat, std::optional< std::string > v13_TotalFloat, std::optional< bool > v14_IsCritical, std::optional< std::string > v15_StatusTime, std::optional< std::string > v16_ActualDuration, std::optional< std::string > v17_ActualStart, std::optional< std::string > v18_ActualFinish, std::optional< std::string > v19_RemainingTime, std::optional< double > v20_Completion, ::Ifc4x3_rc1::IfcRecurrencePattern v21_Recurrence) : IfcTaskTime(const std::weak_ptr&(in_memory_attribute_storage(21))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DataOrigin) {set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)*v2_DataOrigin))); } if (v3_UserDefinedDataOrigin) {set_attribute_value(2, (*v3_UserDefinedDataOrigin)); } if (v4_DurationType) {set_attribute_value(3, (EnumerationReference(&::Ifc4x3_rc1::IfcTaskDurationEnum::Class(),(size_t)*v4_DurationType))); } if (v5_ScheduleDuration) {set_attribute_value(4, (*v5_ScheduleDuration)); } if (v6_ScheduleStart) {set_attribute_value(5, (*v6_ScheduleStart)); } if (v7_ScheduleFinish) {set_attribute_value(6, (*v7_ScheduleFinish)); } if (v8_EarlyStart) {set_attribute_value(7, (*v8_EarlyStart)); } if (v9_EarlyFinish) {set_attribute_value(8, (*v9_EarlyFinish)); } if (v10_LateStart) {set_attribute_value(9, (*v10_LateStart)); } if (v11_LateFinish) {set_attribute_value(10, (*v11_LateFinish)); } if (v12_FreeFloat) {set_attribute_value(11, (*v12_FreeFloat)); } if (v13_TotalFloat) {set_attribute_value(12, (*v13_TotalFloat)); } if (v14_IsCritical) {set_attribute_value(13, (*v14_IsCritical)); } if (v15_StatusTime) {set_attribute_value(14, (*v15_StatusTime)); } if (v16_ActualDuration) {set_attribute_value(15, (*v16_ActualDuration)); } if (v17_ActualStart) {set_attribute_value(16, (*v17_ActualStart)); } if (v18_ActualFinish) {set_attribute_value(17, (*v18_ActualFinish)); } if (v19_RemainingTime) {set_attribute_value(18, (*v19_RemainingTime)); } if (v20_Completion) {set_attribute_value(19, (*v20_Completion)); }set_attribute_value(20, (v21_Recurrence));; populate_derived(); } // Function implementations for IfcTaskType ::Ifc4x3_rc1::IfcTaskTypeEnum::Value Ifc4x3_rc1::IfcTaskType::PredefinedType() const { return ::Ifc4x3_rc1::IfcTaskTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTaskType::setPredefinedType(const ::Ifc4x3_rc1::IfcTaskTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTaskTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< std::string > Ifc4x3_rc1::IfcTaskType::WorkMethod() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcTaskType::setWorkMethod(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTaskType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1168]); } const IfcParse::entity& Ifc4x3_rc1::IfcTaskType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1168]); } // Ifc4x3_rc1::IfcTaskType::IfcTaskType(const std::weak_ptr& e) : IfcTypeProcess(e) { } // Ifc4x3_rc1::IfcTaskType::IfcTaskType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ProcessType, ::Ifc4x3_rc1::IfcTaskTypeEnum::Value v10_PredefinedType, std::optional< std::string > v11_WorkMethod) : IfcTypeProcess(const std::weak_ptr&(in_memory_attribute_storage(11))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ProcessType) {set_attribute_value(8, (*v9_ProcessType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTaskTypeEnum::Class(),(size_t)v10_PredefinedType))); if (v11_WorkMethod) {set_attribute_value(10, (*v11_WorkMethod)); }; populate_derived(); } // Function implementations for IfcTelecomAddress std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcTelecomAddress::TelephoneNumbers() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcTelecomAddress::setTelephoneNumbers(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcTelecomAddress::FacsimileNumbers() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTelecomAddress::setFacsimileNumbers(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcTelecomAddress::PagerNumber() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcTelecomAddress::setPagerNumber(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcTelecomAddress::ElectronicMailAddresses() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcTelecomAddress::setElectronicMailAddresses(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcTelecomAddress::WWWHomePageURL() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcTelecomAddress::setWWWHomePageURL(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::vector< std::string > /*[1:?]*/ > Ifc4x3_rc1::IfcTelecomAddress::MessagingIDs() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::vector< std::string > /*[1:?]*/ v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcTelecomAddress::setMessagingIDs(const std::optional< std::vector< std::string > /*[1:?]*/ >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTelecomAddress::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1170]); } const IfcParse::entity& Ifc4x3_rc1::IfcTelecomAddress::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1170]); } // Ifc4x3_rc1::IfcTelecomAddress::IfcTelecomAddress(const std::weak_ptr& e) : IfcAddress(e) { } // Ifc4x3_rc1::IfcTelecomAddress::IfcTelecomAddress(std::optional< ::Ifc4x3_rc1::IfcAddressTypeEnum::Value > v1_Purpose, std::optional< std::string > v2_Description, std::optional< std::string > v3_UserDefinedPurpose, std::optional< std::vector< std::string > /*[1:?]*/ > v4_TelephoneNumbers, std::optional< std::vector< std::string > /*[1:?]*/ > v5_FacsimileNumbers, std::optional< std::string > v6_PagerNumber, std::optional< std::vector< std::string > /*[1:?]*/ > v7_ElectronicMailAddresses, std::optional< std::string > v8_WWWHomePageURL, std::optional< std::vector< std::string > /*[1:?]*/ > v9_MessagingIDs) : IfcAddress(const std::weak_ptr&(in_memory_attribute_storage(9))) { if (v1_Purpose) {set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcAddressTypeEnum::Class(),(size_t)*v1_Purpose))); } if (v2_Description) {set_attribute_value(1, (*v2_Description)); } if (v3_UserDefinedPurpose) {set_attribute_value(2, (*v3_UserDefinedPurpose)); } if (v4_TelephoneNumbers) {set_attribute_value(3, (*v4_TelephoneNumbers)); } if (v5_FacsimileNumbers) {set_attribute_value(4, (*v5_FacsimileNumbers)); } if (v6_PagerNumber) {set_attribute_value(5, (*v6_PagerNumber)); } if (v7_ElectronicMailAddresses) {set_attribute_value(6, (*v7_ElectronicMailAddresses)); } if (v8_WWWHomePageURL) {set_attribute_value(7, (*v8_WWWHomePageURL)); } if (v9_MessagingIDs) {set_attribute_value(8, (*v9_MessagingIDs)); }; populate_derived(); } // Function implementations for IfcTendon std::optional< ::Ifc4x3_rc1::IfcTendonTypeEnum::Value > Ifc4x3_rc1::IfcTendon::PredefinedType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcTendonTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTendon::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcTendonTypeEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTendonTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcTendon::NominalDiameter() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcTendon::setNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcTendon::CrossSectionArea() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcTendon::setCrossSectionArea(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< double > Ifc4x3_rc1::IfcTendon::TensionForce() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcTendon::setTensionForce(const std::optional< double >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } std::optional< double > Ifc4x3_rc1::IfcTendon::PreStress() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } double v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcTendon::setPreStress(const std::optional< double >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } std::optional< double > Ifc4x3_rc1::IfcTendon::FrictionCoefficient() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } double v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcTendon::setFrictionCoefficient(const std::optional< double >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } std::optional< double > Ifc4x3_rc1::IfcTendon::AnchorageSlip() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } double v = get_attribute_value(15); return v; } void Ifc4x3_rc1::IfcTendon::setAnchorageSlip(const std::optional< double >& v) { if (v) {set_attribute_value(15, *v);} else {unset_attribute_value(15);} } std::optional< double > Ifc4x3_rc1::IfcTendon::MinCurvatureRadius() const { if(get_attribute_value(16).isNull()) { return std::nullopt; } double v = get_attribute_value(16); return v; } void Ifc4x3_rc1::IfcTendon::setMinCurvatureRadius(const std::optional< double >& v) { if (v) {set_attribute_value(16, *v);} else {unset_attribute_value(16);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTendon::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1173]); } const IfcParse::entity& Ifc4x3_rc1::IfcTendon::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1173]); } // Ifc4x3_rc1::IfcTendon::IfcTendon(const std::weak_ptr& e) : IfcReinforcingElement(e) { } // Ifc4x3_rc1::IfcTendon::IfcTendon(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< std::string > v9_SteelGrade, std::optional< ::Ifc4x3_rc1::IfcTendonTypeEnum::Value > v10_PredefinedType, std::optional< double > v11_NominalDiameter, std::optional< double > v12_CrossSectionArea, std::optional< double > v13_TensionForce, std::optional< double > v14_PreStress, std::optional< double > v15_FrictionCoefficient, std::optional< double > v16_AnchorageSlip, std::optional< double > v17_MinCurvatureRadius) : IfcReinforcingElement(const std::weak_ptr&(in_memory_attribute_storage(17))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_SteelGrade) {set_attribute_value(8, (*v9_SteelGrade)); } if (v10_PredefinedType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTendonTypeEnum::Class(),(size_t)*v10_PredefinedType))); } if (v11_NominalDiameter) {set_attribute_value(10, (*v11_NominalDiameter)); } if (v12_CrossSectionArea) {set_attribute_value(11, (*v12_CrossSectionArea)); } if (v13_TensionForce) {set_attribute_value(12, (*v13_TensionForce)); } if (v14_PreStress) {set_attribute_value(13, (*v14_PreStress)); } if (v15_FrictionCoefficient) {set_attribute_value(14, (*v15_FrictionCoefficient)); } if (v16_AnchorageSlip) {set_attribute_value(15, (*v16_AnchorageSlip)); } if (v17_MinCurvatureRadius) {set_attribute_value(16, (*v17_MinCurvatureRadius)); }; populate_derived(); } // Function implementations for IfcTendonAnchor std::optional< ::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value > Ifc4x3_rc1::IfcTendonAnchor::PredefinedType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTendonAnchor::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTendonAnchor::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1174]); } const IfcParse::entity& Ifc4x3_rc1::IfcTendonAnchor::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1174]); } // Ifc4x3_rc1::IfcTendonAnchor::IfcTendonAnchor(const std::weak_ptr& e) : IfcReinforcingElement(e) { } // Ifc4x3_rc1::IfcTendonAnchor::IfcTendonAnchor(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< std::string > v9_SteelGrade, std::optional< ::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value > v10_PredefinedType) : IfcReinforcingElement(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_SteelGrade) {set_attribute_value(8, (*v9_SteelGrade)); } if (v10_PredefinedType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Class(),(size_t)*v10_PredefinedType))); }; populate_derived(); } // Function implementations for IfcTendonAnchorType ::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value Ifc4x3_rc1::IfcTendonAnchorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTendonAnchorType::setPredefinedType(const ::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcTendonAnchorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1175]); } const IfcParse::entity& Ifc4x3_rc1::IfcTendonAnchorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1175]); } // Ifc4x3_rc1::IfcTendonAnchorType::IfcTendonAnchorType(const std::weak_ptr& e) : IfcReinforcingElementType(e) { } // Ifc4x3_rc1::IfcTendonAnchorType::IfcTendonAnchorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Value v10_PredefinedType) : IfcReinforcingElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTendonAnchorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcTendonConduit ::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value Ifc4x3_rc1::IfcTendonConduit::PredefinedType() const { return ::Ifc4x3_rc1::IfcTendonConduitTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTendonConduit::setPredefinedType(const ::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcTendonConduit::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1177]); } const IfcParse::entity& Ifc4x3_rc1::IfcTendonConduit::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1177]); } // Ifc4x3_rc1::IfcTendonConduit::IfcTendonConduit(const std::weak_ptr& e) : IfcReinforcingElement(e) { } // Ifc4x3_rc1::IfcTendonConduit::IfcTendonConduit(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< std::string > v9_SteelGrade, ::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value v10_PredefinedType) : IfcReinforcingElement(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_SteelGrade) {set_attribute_value(8, (*v9_SteelGrade)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcTendonConduitType ::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value Ifc4x3_rc1::IfcTendonConduitType::PredefinedType() const { return ::Ifc4x3_rc1::IfcTendonConduitTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTendonConduitType::setPredefinedType(const ::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcTendonConduitType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1178]); } const IfcParse::entity& Ifc4x3_rc1::IfcTendonConduitType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1178]); } // Ifc4x3_rc1::IfcTendonConduitType::IfcTendonConduitType(const std::weak_ptr& e) : IfcReinforcingElementType(e) { } // Ifc4x3_rc1::IfcTendonConduitType::IfcTendonConduitType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Value v10_PredefinedType) : IfcReinforcingElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTendonConduitTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcTendonType ::Ifc4x3_rc1::IfcTendonTypeEnum::Value Ifc4x3_rc1::IfcTendonType::PredefinedType() const { return ::Ifc4x3_rc1::IfcTendonTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTendonType::setPredefinedType(const ::Ifc4x3_rc1::IfcTendonTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTendonTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } std::optional< double > Ifc4x3_rc1::IfcTendonType::NominalDiameter() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcTendonType::setNominalDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcTendonType::CrossSectionArea() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcTendonType::setCrossSectionArea(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< double > Ifc4x3_rc1::IfcTendonType::SheathDiameter() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } double v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcTendonType::setSheathDiameter(const std::optional< double >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTendonType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1180]); } const IfcParse::entity& Ifc4x3_rc1::IfcTendonType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1180]); } // Ifc4x3_rc1::IfcTendonType::IfcTendonType(const std::weak_ptr& e) : IfcReinforcingElementType(e) { } // Ifc4x3_rc1::IfcTendonType::IfcTendonType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcTendonTypeEnum::Value v10_PredefinedType, std::optional< double > v11_NominalDiameter, std::optional< double > v12_CrossSectionArea, std::optional< double > v13_SheathDiameter) : IfcReinforcingElementType(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTendonTypeEnum::Class(),(size_t)v10_PredefinedType))); if (v11_NominalDiameter) {set_attribute_value(10, (*v11_NominalDiameter)); } if (v12_CrossSectionArea) {set_attribute_value(11, (*v12_CrossSectionArea)); } if (v13_SheathDiameter) {set_attribute_value(12, (*v13_SheathDiameter)); }; populate_derived(); } // Function implementations for IfcTessellatedFaceSet ::Ifc4x3_rc1::IfcCartesianPointList3D Ifc4x3_rc1::IfcTessellatedFaceSet::Coordinates() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCartesianPointList3D>(); } void Ifc4x3_rc1::IfcTessellatedFaceSet::setCoordinates(const ::Ifc4x3_rc1::IfcCartesianPointList3D& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector<::Ifc4x3_rc1::IfcIndexedColourMap> Ifc4x3_rc1::IfcTessellatedFaceSet::HasColours() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[550], 0)); } std::vector<::Ifc4x3_rc1::IfcIndexedTextureMap> Ifc4x3_rc1::IfcTessellatedFaceSet::HasTextures() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[554], 1)); } // const IfcParse::entity& Ifc4x3_rc1::IfcTessellatedFaceSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1182]); } const IfcParse::entity& Ifc4x3_rc1::IfcTessellatedFaceSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1182]); } // Ifc4x3_rc1::IfcTessellatedFaceSet::IfcTessellatedFaceSet(const std::weak_ptr& e) : IfcTessellatedItem(e) { } // Ifc4x3_rc1::IfcTessellatedFaceSet::IfcTessellatedFaceSet(::Ifc4x3_rc1::IfcCartesianPointList3D v1_Coordinates) : IfcTessellatedItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Coordinates));; populate_derived(); } // Function implementations for IfcTessellatedItem // const IfcParse::entity& Ifc4x3_rc1::IfcTessellatedItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1183]); } const IfcParse::entity& Ifc4x3_rc1::IfcTessellatedItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1183]); } // Ifc4x3_rc1::IfcTessellatedItem::IfcTessellatedItem(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcTessellatedItem::IfcTessellatedItem() : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcTextLiteral std::string Ifc4x3_rc1::IfcTextLiteral::Literal() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcTextLiteral::setLiteral(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcAxis2Placement Ifc4x3_rc1::IfcTextLiteral::Placement() const { return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcAxis2Placement>(); } void Ifc4x3_rc1::IfcTextLiteral::setPlacement(const ::Ifc4x3_rc1::IfcAxis2Placement& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcTextPath::Value Ifc4x3_rc1::IfcTextLiteral::Path() const { return ::Ifc4x3_rc1::IfcTextPath::FromString(get_attribute_value(2)); } void Ifc4x3_rc1::IfcTextLiteral::setPath(const ::Ifc4x3_rc1::IfcTextPath::Value& v) { set_attribute_value(2, EnumerationReference(&::Ifc4x3_rc1::IfcTextPath::Class(), (size_t) v));if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextLiteral::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1189]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextLiteral::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1189]); } // Ifc4x3_rc1::IfcTextLiteral::IfcTextLiteral(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcTextLiteral::IfcTextLiteral(std::string v1_Literal, ::Ifc4x3_rc1::IfcAxis2Placement v2_Placement, ::Ifc4x3_rc1::IfcTextPath::Value v3_Path) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Literal));set_attribute_value(1, (v2_Placement));set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcTextPath::Class(),(size_t)v3_Path)));; populate_derived(); } // Function implementations for IfcTextLiteralWithExtent ::Ifc4x3_rc1::IfcPlanarExtent Ifc4x3_rc1::IfcTextLiteralWithExtent::Extent() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcPlanarExtent>(); } void Ifc4x3_rc1::IfcTextLiteralWithExtent::setExtent(const ::Ifc4x3_rc1::IfcPlanarExtent& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::string Ifc4x3_rc1::IfcTextLiteralWithExtent::BoxAlignment() const { std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTextLiteralWithExtent::setBoxAlignment(const std::string& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextLiteralWithExtent::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1190]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextLiteralWithExtent::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1190]); } // Ifc4x3_rc1::IfcTextLiteralWithExtent::IfcTextLiteralWithExtent(const std::weak_ptr& e) : IfcTextLiteral(e) { } // Ifc4x3_rc1::IfcTextLiteralWithExtent::IfcTextLiteralWithExtent(std::string v1_Literal, ::Ifc4x3_rc1::IfcAxis2Placement v2_Placement, ::Ifc4x3_rc1::IfcTextPath::Value v3_Path, ::Ifc4x3_rc1::IfcPlanarExtent v4_Extent, std::string v5_BoxAlignment) : IfcTextLiteral(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Literal));set_attribute_value(1, (v2_Placement));set_attribute_value(2, (EnumerationReference(&::Ifc4x3_rc1::IfcTextPath::Class(),(size_t)v3_Path)));set_attribute_value(3, (v4_Extent));set_attribute_value(4, (v5_BoxAlignment));; populate_derived(); } // Function implementations for IfcTextStyle ::Ifc4x3_rc1::IfcTextStyleForDefinedFont Ifc4x3_rc1::IfcTextStyle::TextCharacterAppearance() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcTextStyleForDefinedFont{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcTextStyleForDefinedFont>(); } void Ifc4x3_rc1::IfcTextStyle::setTextCharacterAppearance(const ::Ifc4x3_rc1::IfcTextStyleForDefinedFont& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcTextStyleTextModel Ifc4x3_rc1::IfcTextStyle::TextStyle() const { if(get_attribute_value(2).isNull()) { return ::Ifc4x3_rc1::IfcTextStyleTextModel{}; } return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcTextStyleTextModel>(); } void Ifc4x3_rc1::IfcTextStyle::setTextStyle(const ::Ifc4x3_rc1::IfcTextStyleTextModel& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } ::Ifc4x3_rc1::IfcTextFontSelect Ifc4x3_rc1::IfcTextStyle::TextFontStyle() const { return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcTextFontSelect>(); } void Ifc4x3_rc1::IfcTextStyle::setTextFontStyle(const ::Ifc4x3_rc1::IfcTextFontSelect& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< bool > Ifc4x3_rc1::IfcTextStyle::ModelOrDraughting() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } bool v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTextStyle::setModelOrDraughting(const std::optional< bool >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTextStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1192]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1192]); } // Ifc4x3_rc1::IfcTextStyle::IfcTextStyle(const std::weak_ptr& e) : IfcPresentationStyle(e) { } // Ifc4x3_rc1::IfcTextStyle::IfcTextStyle(std::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcTextStyleForDefinedFont v2_TextCharacterAppearance, ::Ifc4x3_rc1::IfcTextStyleTextModel v3_TextStyle, ::Ifc4x3_rc1::IfcTextFontSelect v4_TextFontStyle, std::optional< bool > v5_ModelOrDraughting) : IfcPresentationStyle(const std::weak_ptr&(in_memory_attribute_storage(5))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_TextCharacterAppearance) {set_attribute_value(1, (*v2_TextCharacterAppearance)); } if (v3_TextStyle) {set_attribute_value(2, (*v3_TextStyle)); }set_attribute_value(3, (v4_TextFontStyle)); if (v5_ModelOrDraughting) {set_attribute_value(4, (*v5_ModelOrDraughting)); }; populate_derived(); } // Function implementations for IfcTextStyleFontModel std::vector< std::string > /*[1:?]*/ Ifc4x3_rc1::IfcTextStyleFontModel::FontFamily() const { std::vector< std::string > /*[1:?]*/ v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcTextStyleFontModel::setFontFamily(const std::vector< std::string > /*[1:?]*/& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< std::string > Ifc4x3_rc1::IfcTextStyleFontModel::FontStyle() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcTextStyleFontModel::setFontStyle(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::optional< std::string > Ifc4x3_rc1::IfcTextStyleFontModel::FontVariant() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcTextStyleFontModel::setFontVariant(const std::optional< std::string >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< std::string > Ifc4x3_rc1::IfcTextStyleFontModel::FontWeight() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTextStyleFontModel::setFontWeight(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } ::Ifc4x3_rc1::IfcSizeSelect Ifc4x3_rc1::IfcTextStyleFontModel::FontSize() const { return ((express::Base)(get_attribute_value(5))).as<::Ifc4x3_rc1::IfcSizeSelect>(); } void Ifc4x3_rc1::IfcTextStyleFontModel::setFontSize(const ::Ifc4x3_rc1::IfcSizeSelect& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextStyleFontModel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1193]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextStyleFontModel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1193]); } // Ifc4x3_rc1::IfcTextStyleFontModel::IfcTextStyleFontModel(const std::weak_ptr& e) : IfcPreDefinedTextFont(e) { } // Ifc4x3_rc1::IfcTextStyleFontModel::IfcTextStyleFontModel(std::string v1_Name, std::vector< std::string > /*[1:?]*/ v2_FontFamily, std::optional< std::string > v3_FontStyle, std::optional< std::string > v4_FontVariant, std::optional< std::string > v5_FontWeight, ::Ifc4x3_rc1::IfcSizeSelect v6_FontSize) : IfcPreDefinedTextFont(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_Name));set_attribute_value(1, (v2_FontFamily)); if (v3_FontStyle) {set_attribute_value(2, (*v3_FontStyle)); } if (v4_FontVariant) {set_attribute_value(3, (*v4_FontVariant)); } if (v5_FontWeight) {set_attribute_value(4, (*v5_FontWeight)); }set_attribute_value(5, (v6_FontSize));; populate_derived(); } // Function implementations for IfcTextStyleForDefinedFont ::Ifc4x3_rc1::IfcColour Ifc4x3_rc1::IfcTextStyleForDefinedFont::Colour() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcColour>(); } void Ifc4x3_rc1::IfcTextStyleForDefinedFont::setColour(const ::Ifc4x3_rc1::IfcColour& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } ::Ifc4x3_rc1::IfcColour Ifc4x3_rc1::IfcTextStyleForDefinedFont::BackgroundColour() const { if(get_attribute_value(1).isNull()) { return ::Ifc4x3_rc1::IfcColour{}; } return ((express::Base)(get_attribute_value(1))).as<::Ifc4x3_rc1::IfcColour>(); } void Ifc4x3_rc1::IfcTextStyleForDefinedFont::setBackgroundColour(const ::Ifc4x3_rc1::IfcColour& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextStyleForDefinedFont::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1194]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextStyleForDefinedFont::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1194]); } // Ifc4x3_rc1::IfcTextStyleForDefinedFont::IfcTextStyleForDefinedFont(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcTextStyleForDefinedFont::IfcTextStyleForDefinedFont(::Ifc4x3_rc1::IfcColour v1_Colour, ::Ifc4x3_rc1::IfcColour v2_BackgroundColour) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Colour)); if (v2_BackgroundColour) {set_attribute_value(1, (*v2_BackgroundColour)); }; populate_derived(); } // Function implementations for IfcTextStyleTextModel ::Ifc4x3_rc1::IfcSizeSelect Ifc4x3_rc1::IfcTextStyleTextModel::TextIndent() const { if(get_attribute_value(0).isNull()) { return ::Ifc4x3_rc1::IfcSizeSelect{}; } return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcSizeSelect>(); } void Ifc4x3_rc1::IfcTextStyleTextModel::setTextIndent(const ::Ifc4x3_rc1::IfcSizeSelect& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcTextStyleTextModel::TextAlign() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcTextStyleTextModel::setTextAlign(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< std::string > Ifc4x3_rc1::IfcTextStyleTextModel::TextDecoration() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcTextStyleTextModel::setTextDecoration(const std::optional< std::string >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } ::Ifc4x3_rc1::IfcSizeSelect Ifc4x3_rc1::IfcTextStyleTextModel::LetterSpacing() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcSizeSelect{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcSizeSelect>(); } void Ifc4x3_rc1::IfcTextStyleTextModel::setLetterSpacing(const ::Ifc4x3_rc1::IfcSizeSelect& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcSizeSelect Ifc4x3_rc1::IfcTextStyleTextModel::WordSpacing() const { if(get_attribute_value(4).isNull()) { return ::Ifc4x3_rc1::IfcSizeSelect{}; } return ((express::Base)(get_attribute_value(4))).as<::Ifc4x3_rc1::IfcSizeSelect>(); } void Ifc4x3_rc1::IfcTextStyleTextModel::setWordSpacing(const ::Ifc4x3_rc1::IfcSizeSelect& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } std::optional< std::string > Ifc4x3_rc1::IfcTextStyleTextModel::TextTransform() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcTextStyleTextModel::setTextTransform(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } ::Ifc4x3_rc1::IfcSizeSelect Ifc4x3_rc1::IfcTextStyleTextModel::LineHeight() const { if(get_attribute_value(6).isNull()) { return ::Ifc4x3_rc1::IfcSizeSelect{}; } return ((express::Base)(get_attribute_value(6))).as<::Ifc4x3_rc1::IfcSizeSelect>(); } void Ifc4x3_rc1::IfcTextStyleTextModel::setLineHeight(const ::Ifc4x3_rc1::IfcSizeSelect& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextStyleTextModel::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1195]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextStyleTextModel::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1195]); } // Ifc4x3_rc1::IfcTextStyleTextModel::IfcTextStyleTextModel(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcTextStyleTextModel::IfcTextStyleTextModel(::Ifc4x3_rc1::IfcSizeSelect v1_TextIndent, std::optional< std::string > v2_TextAlign, std::optional< std::string > v3_TextDecoration, ::Ifc4x3_rc1::IfcSizeSelect v4_LetterSpacing, ::Ifc4x3_rc1::IfcSizeSelect v5_WordSpacing, std::optional< std::string > v6_TextTransform, ::Ifc4x3_rc1::IfcSizeSelect v7_LineHeight) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(7))) { if (v1_TextIndent) {set_attribute_value(0, (*v1_TextIndent)); } if (v2_TextAlign) {set_attribute_value(1, (*v2_TextAlign)); } if (v3_TextDecoration) {set_attribute_value(2, (*v3_TextDecoration)); } if (v4_LetterSpacing) {set_attribute_value(3, (*v4_LetterSpacing)); } if (v5_WordSpacing) {set_attribute_value(4, (*v5_WordSpacing)); } if (v6_TextTransform) {set_attribute_value(5, (*v6_TextTransform)); } if (v7_LineHeight) {set_attribute_value(6, (*v7_LineHeight)); }; populate_derived(); } // Function implementations for IfcTextureCoordinate std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture > Ifc4x3_rc1::IfcTextureCoordinate::Maps() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcSurfaceTexture>(es); } void Ifc4x3_rc1::IfcTextureCoordinate::setMaps(const std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextureCoordinate::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1197]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextureCoordinate::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1197]); } // Ifc4x3_rc1::IfcTextureCoordinate::IfcTextureCoordinate(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcTextureCoordinate::IfcTextureCoordinate(std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture > v1_Maps) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Maps)->generalize());; populate_derived(); } // Function implementations for IfcTextureCoordinateGenerator std::string Ifc4x3_rc1::IfcTextureCoordinateGenerator::Mode() const { std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcTextureCoordinateGenerator::setMode(const std::string& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } std::optional< std::vector< double > /*[1:?]*/ > Ifc4x3_rc1::IfcTextureCoordinateGenerator::Parameter() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } std::vector< double > /*[1:?]*/ v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcTextureCoordinateGenerator::setParameter(const std::optional< std::vector< double > /*[1:?]*/ >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTextureCoordinateGenerator::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1198]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextureCoordinateGenerator::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1198]); } // Ifc4x3_rc1::IfcTextureCoordinateGenerator::IfcTextureCoordinateGenerator(const std::weak_ptr& e) : IfcTextureCoordinate(e) { } // Ifc4x3_rc1::IfcTextureCoordinateGenerator::IfcTextureCoordinateGenerator(std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture > v1_Maps, std::string v2_Mode, std::optional< std::vector< double > /*[1:?]*/ > v3_Parameter) : IfcTextureCoordinate(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Maps)->generalize());set_attribute_value(1, (v2_Mode)); if (v3_Parameter) {set_attribute_value(2, (*v3_Parameter)); }; populate_derived(); } // Function implementations for IfcTextureMap std::vector< ::Ifc4x3_rc1::IfcTextureVertex > Ifc4x3_rc1::IfcTextureMap::Vertices() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcTextureVertex>(es); } void Ifc4x3_rc1::IfcTextureMap::setVertices(const std::vector< ::Ifc4x3_rc1::IfcTextureVertex >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } ::Ifc4x3_rc1::IfcFace Ifc4x3_rc1::IfcTextureMap::MappedTo() const { return ((express::Base)(get_attribute_value(2))).as<::Ifc4x3_rc1::IfcFace>(); } void Ifc4x3_rc1::IfcTextureMap::setMappedTo(const ::Ifc4x3_rc1::IfcFace& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextureMap::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1199]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextureMap::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1199]); } // Ifc4x3_rc1::IfcTextureMap::IfcTextureMap(const std::weak_ptr& e) : IfcTextureCoordinate(e) { } // Ifc4x3_rc1::IfcTextureMap::IfcTextureMap(std::vector< ::Ifc4x3_rc1::IfcSurfaceTexture > v1_Maps, std::vector< ::Ifc4x3_rc1::IfcTextureVertex > v2_Vertices, ::Ifc4x3_rc1::IfcFace v3_MappedTo) : IfcTextureCoordinate(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Maps)->generalize());set_attribute_value(1, (v2_Vertices)->generalize());set_attribute_value(2, (v3_MappedTo));; populate_derived(); } // Function implementations for IfcTextureVertex std::vector< double > /*[2:2]*/ Ifc4x3_rc1::IfcTextureVertex::Coordinates() const { std::vector< double > /*[2:2]*/ v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcTextureVertex::setCoordinates(const std::vector< double > /*[2:2]*/& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextureVertex::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1200]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextureVertex::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1200]); } // Ifc4x3_rc1::IfcTextureVertex::IfcTextureVertex(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcTextureVertex::IfcTextureVertex(std::vector< double > /*[2:2]*/ v1_Coordinates) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Coordinates));; populate_derived(); } // Function implementations for IfcTextureVertexList std::vector< std::vector< double > > Ifc4x3_rc1::IfcTextureVertexList::TexCoordsList() const { std::vector< std::vector< double > > v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcTextureVertexList::setTexCoordsList(const std::vector< std::vector< double > >& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcTextureVertexList::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1201]); } const IfcParse::entity& Ifc4x3_rc1::IfcTextureVertexList::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1201]); } // Ifc4x3_rc1::IfcTextureVertexList::IfcTextureVertexList(const std::weak_ptr& e) : IfcPresentationItem(e) { } // Ifc4x3_rc1::IfcTextureVertexList::IfcTextureVertexList(std::vector< std::vector< double > > v1_TexCoordsList) : IfcPresentationItem(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_TexCoordsList));; populate_derived(); } // Function implementations for IfcTimePeriod std::string Ifc4x3_rc1::IfcTimePeriod::StartTime() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcTimePeriod::setStartTime(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::string Ifc4x3_rc1::IfcTimePeriod::EndTime() const { std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcTimePeriod::setEndTime(const std::string& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcTimePeriod::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1211]); } const IfcParse::entity& Ifc4x3_rc1::IfcTimePeriod::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1211]); } // Ifc4x3_rc1::IfcTimePeriod::IfcTimePeriod(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcTimePeriod::IfcTimePeriod(std::string v1_StartTime, std::string v2_EndTime) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_StartTime));set_attribute_value(1, (v2_EndTime));; populate_derived(); } // Function implementations for IfcTimeSeries std::string Ifc4x3_rc1::IfcTimeSeries::Name() const { std::string v = get_attribute_value(0); return v; } void Ifc4x3_rc1::IfcTimeSeries::setName(const std::string& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::optional< std::string > Ifc4x3_rc1::IfcTimeSeries::Description() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::string v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcTimeSeries::setDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::string Ifc4x3_rc1::IfcTimeSeries::StartTime() const { std::string v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcTimeSeries::setStartTime(const std::string& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } std::string Ifc4x3_rc1::IfcTimeSeries::EndTime() const { std::string v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcTimeSeries::setEndTime(const std::string& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value Ifc4x3_rc1::IfcTimeSeries::TimeSeriesDataType() const { return ::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::FromString(get_attribute_value(4)); } void Ifc4x3_rc1::IfcTimeSeries::setTimeSeriesDataType(const ::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value& v) { set_attribute_value(4, EnumerationReference(&::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcDataOriginEnum::Value Ifc4x3_rc1::IfcTimeSeries::DataOrigin() const { return ::Ifc4x3_rc1::IfcDataOriginEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcTimeSeries::setDataOrigin(const ::Ifc4x3_rc1::IfcDataOriginEnum::Value& v) { set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(5); } std::optional< std::string > Ifc4x3_rc1::IfcTimeSeries::UserDefinedDataOrigin() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcTimeSeries::setUserDefinedDataOrigin(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } ::Ifc4x3_rc1::IfcUnit Ifc4x3_rc1::IfcTimeSeries::Unit() const { if(get_attribute_value(7).isNull()) { return ::Ifc4x3_rc1::IfcUnit{}; } return ((express::Base)(get_attribute_value(7))).as<::Ifc4x3_rc1::IfcUnit>(); } void Ifc4x3_rc1::IfcTimeSeries::setUnit(const ::Ifc4x3_rc1::IfcUnit& v) { set_attribute_value(7, v);if constexpr (false)unset_attribute_value(7); } std::vector<::Ifc4x3_rc1::IfcExternalReferenceRelationship> Ifc4x3_rc1::IfcTimeSeries::HasExternalReference() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[436], 3)); } // const IfcParse::entity& Ifc4x3_rc1::IfcTimeSeries::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1212]); } const IfcParse::entity& Ifc4x3_rc1::IfcTimeSeries::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1212]); } // Ifc4x3_rc1::IfcTimeSeries::IfcTimeSeries(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, std::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_rc1::IfcDataOriginEnum::Value v6_DataOrigin, std::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_rc1::IfcUnit v8_Unit) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_Name)); if (v2_Description) {set_attribute_value(1, (*v2_Description)); }set_attribute_value(2, (v3_StartTime));set_attribute_value(3, (v4_EndTime));set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Class(),(size_t)v5_TimeSeriesDataType)));set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)v6_DataOrigin))); if (v7_UserDefinedDataOrigin) {set_attribute_value(6, (*v7_UserDefinedDataOrigin)); } if (v8_Unit) {set_attribute_value(7, (*v8_Unit)); }; populate_derived(); } // Function implementations for IfcTimeSeriesValue std::vector< ::Ifc4x3_rc1::IfcValue > Ifc4x3_rc1::IfcTimeSeriesValue::ListValues() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcValue>(es); } void Ifc4x3_rc1::IfcTimeSeriesValue::setListValues(const std::vector< ::Ifc4x3_rc1::IfcValue >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcTimeSeriesValue::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1214]); } const IfcParse::entity& Ifc4x3_rc1::IfcTimeSeriesValue::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1214]); } // Ifc4x3_rc1::IfcTimeSeriesValue::IfcTimeSeriesValue(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcTimeSeriesValue::IfcTimeSeriesValue(std::vector< ::Ifc4x3_rc1::IfcValue > v1_ListValues) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_ListValues)->generalize());; populate_derived(); } // Function implementations for IfcTopologicalRepresentationItem // const IfcParse::entity& Ifc4x3_rc1::IfcTopologicalRepresentationItem::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1216]); } const IfcParse::entity& Ifc4x3_rc1::IfcTopologicalRepresentationItem::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1216]); } // Ifc4x3_rc1::IfcTopologicalRepresentationItem::IfcTopologicalRepresentationItem(const std::weak_ptr& e) : IfcRepresentationItem(e) { } // Ifc4x3_rc1::IfcTopologicalRepresentationItem::IfcTopologicalRepresentationItem() : IfcRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcTopologyRepresentation // const IfcParse::entity& Ifc4x3_rc1::IfcTopologyRepresentation::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1217]); } const IfcParse::entity& Ifc4x3_rc1::IfcTopologyRepresentation::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1217]); } // Ifc4x3_rc1::IfcTopologyRepresentation::IfcTopologyRepresentation(const std::weak_ptr& e) : IfcShapeModel(e) { } // Ifc4x3_rc1::IfcTopologyRepresentation::IfcTopologyRepresentation(::Ifc4x3_rc1::IfcRepresentationContext v1_ContextOfItems, std::optional< std::string > v2_RepresentationIdentifier, std::optional< std::string > v3_RepresentationType, std::vector< ::Ifc4x3_rc1::IfcRepresentationItem > v4_Items) : IfcShapeModel(const std::weak_ptr&(in_memory_attribute_storage(4))) { set_attribute_value(0, (v1_ContextOfItems)); if (v2_RepresentationIdentifier) {set_attribute_value(1, (*v2_RepresentationIdentifier)); } if (v3_RepresentationType) {set_attribute_value(2, (*v3_RepresentationType)); }set_attribute_value(3, (v4_Items)->generalize());; populate_derived(); } // Function implementations for IfcToroidalSurface double Ifc4x3_rc1::IfcToroidalSurface::MajorRadius() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcToroidalSurface::setMajorRadius(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } double Ifc4x3_rc1::IfcToroidalSurface::MinorRadius() const { double v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcToroidalSurface::setMinorRadius(const double& v) { set_attribute_value(2, v);if constexpr (false)unset_attribute_value(2); } // const IfcParse::entity& Ifc4x3_rc1::IfcToroidalSurface::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1218]); } const IfcParse::entity& Ifc4x3_rc1::IfcToroidalSurface::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1218]); } // Ifc4x3_rc1::IfcToroidalSurface::IfcToroidalSurface(const std::weak_ptr& e) : IfcElementarySurface(e) { } // Ifc4x3_rc1::IfcToroidalSurface::IfcToroidalSurface(::Ifc4x3_rc1::IfcAxis2Placement3D v1_Position, double v2_MajorRadius, double v3_MinorRadius) : IfcElementarySurface(const std::weak_ptr&(in_memory_attribute_storage(3))) { set_attribute_value(0, (v1_Position));set_attribute_value(1, (v2_MajorRadius));set_attribute_value(2, (v3_MinorRadius));; populate_derived(); } // Function implementations for IfcTrackElement std::optional< ::Ifc4x3_rc1::IfcTrackElementTypeEnum::Value > Ifc4x3_rc1::IfcTrackElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcTrackElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcTrackElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcTrackElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcTrackElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTrackElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1220]); } const IfcParse::entity& Ifc4x3_rc1::IfcTrackElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1220]); } // Ifc4x3_rc1::IfcTrackElement::IfcTrackElement(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcTrackElement::IfcTrackElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcTrackElementTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcTrackElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcTrackElementType ::Ifc4x3_rc1::IfcTrackElementTypeEnum::Value Ifc4x3_rc1::IfcTrackElementType::PredefinedType() const { return ::Ifc4x3_rc1::IfcTrackElementTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTrackElementType::setPredefinedType(const ::Ifc4x3_rc1::IfcTrackElementTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTrackElementTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcTrackElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1221]); } const IfcParse::entity& Ifc4x3_rc1::IfcTrackElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1221]); } // Ifc4x3_rc1::IfcTrackElementType::IfcTrackElementType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcTrackElementType::IfcTrackElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcTrackElementTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTrackElementTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcTransformer std::optional< ::Ifc4x3_rc1::IfcTransformerTypeEnum::Value > Ifc4x3_rc1::IfcTransformer::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcTransformerTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcTransformer::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcTransformerTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcTransformerTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTransformer::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1223]); } const IfcParse::entity& Ifc4x3_rc1::IfcTransformer::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1223]); } // Ifc4x3_rc1::IfcTransformer::IfcTransformer(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcTransformer::IfcTransformer(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcTransformerTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcTransformerTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcTransformerType ::Ifc4x3_rc1::IfcTransformerTypeEnum::Value Ifc4x3_rc1::IfcTransformerType::PredefinedType() const { return ::Ifc4x3_rc1::IfcTransformerTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTransformerType::setPredefinedType(const ::Ifc4x3_rc1::IfcTransformerTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTransformerTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcTransformerType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1224]); } const IfcParse::entity& Ifc4x3_rc1::IfcTransformerType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1224]); } // Ifc4x3_rc1::IfcTransformerType::IfcTransformerType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcTransformerType::IfcTransformerType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcTransformerTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTransformerTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcTransitionCurveSegment2D std::optional< double > Ifc4x3_rc1::IfcTransitionCurveSegment2D::StartRadius() const { if(get_attribute_value(3).isNull()) { return std::nullopt; } double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcTransitionCurveSegment2D::setStartRadius(const std::optional< double >& v) { if (v) {set_attribute_value(3, *v);} else {unset_attribute_value(3);} } std::optional< double > Ifc4x3_rc1::IfcTransitionCurveSegment2D::EndRadius() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTransitionCurveSegment2D::setEndRadius(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } bool Ifc4x3_rc1::IfcTransitionCurveSegment2D::IsStartRadiusCCW() const { bool v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcTransitionCurveSegment2D::setIsStartRadiusCCW(const bool& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } bool Ifc4x3_rc1::IfcTransitionCurveSegment2D::IsEndRadiusCCW() const { bool v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcTransitionCurveSegment2D::setIsEndRadiusCCW(const bool& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } ::Ifc4x3_rc1::IfcTransitionCurveType::Value Ifc4x3_rc1::IfcTransitionCurveSegment2D::TransitionCurveType() const { return ::Ifc4x3_rc1::IfcTransitionCurveType::FromString(get_attribute_value(7)); } void Ifc4x3_rc1::IfcTransitionCurveSegment2D::setTransitionCurveType(const ::Ifc4x3_rc1::IfcTransitionCurveType::Value& v) { set_attribute_value(7, EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCurveType::Class(), (size_t) v));if constexpr (false)unset_attribute_value(7); } // const IfcParse::entity& Ifc4x3_rc1::IfcTransitionCurveSegment2D::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1227]); } const IfcParse::entity& Ifc4x3_rc1::IfcTransitionCurveSegment2D::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1227]); } // Ifc4x3_rc1::IfcTransitionCurveSegment2D::IfcTransitionCurveSegment2D(const std::weak_ptr& e) : IfcCurveSegment2D(e) { } // Ifc4x3_rc1::IfcTransitionCurveSegment2D::IfcTransitionCurveSegment2D(::Ifc4x3_rc1::IfcCartesianPoint v1_StartPoint, double v2_StartDirection, double v3_SegmentLength, std::optional< double > v4_StartRadius, std::optional< double > v5_EndRadius, bool v6_IsStartRadiusCCW, bool v7_IsEndRadiusCCW, ::Ifc4x3_rc1::IfcTransitionCurveType::Value v8_TransitionCurveType) : IfcCurveSegment2D(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_StartPoint));set_attribute_value(1, (v2_StartDirection));set_attribute_value(2, (v3_SegmentLength)); if (v4_StartRadius) {set_attribute_value(3, (*v4_StartRadius)); } if (v5_EndRadius) {set_attribute_value(4, (*v5_EndRadius)); }set_attribute_value(5, (v6_IsStartRadiusCCW));set_attribute_value(6, (v7_IsEndRadiusCCW));set_attribute_value(7, (EnumerationReference(&::Ifc4x3_rc1::IfcTransitionCurveType::Class(),(size_t)v8_TransitionCurveType)));; populate_derived(); } // Function implementations for IfcTransportElement ::Ifc4x3_rc1::IfcTransportElementTypeSelect Ifc4x3_rc1::IfcTransportElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcTransportElementTypeSelect{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcTransportElementTypeSelect>(); } void Ifc4x3_rc1::IfcTransportElement::setPredefinedType(const ::Ifc4x3_rc1::IfcTransportElementTypeSelect& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcTransportElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1230]); } const IfcParse::entity& Ifc4x3_rc1::IfcTransportElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1230]); } // Ifc4x3_rc1::IfcTransportElement::IfcTransportElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcTransportElement::IfcTransportElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, ::Ifc4x3_rc1::IfcTransportElementTypeSelect v9_PredefinedType) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (*v9_PredefinedType)); }; populate_derived(); } // Function implementations for IfcTransportElementType ::Ifc4x3_rc1::IfcTransportElementTypeSelect Ifc4x3_rc1::IfcTransportElementType::PredefinedType() const { return ((express::Base)(get_attribute_value(9))).as<::Ifc4x3_rc1::IfcTransportElementTypeSelect>(); } void Ifc4x3_rc1::IfcTransportElementType::setPredefinedType(const ::Ifc4x3_rc1::IfcTransportElementTypeSelect& v) { set_attribute_value(9, v);if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcTransportElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1233]); } const IfcParse::entity& Ifc4x3_rc1::IfcTransportElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1233]); } // Ifc4x3_rc1::IfcTransportElementType::IfcTransportElementType(const std::weak_ptr& e) : IfcElementType(e) { } // Ifc4x3_rc1::IfcTransportElementType::IfcTransportElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcTransportElementTypeSelect v10_PredefinedType) : IfcElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (v10_PredefinedType));; populate_derived(); } // Function implementations for IfcTrapeziumProfileDef double Ifc4x3_rc1::IfcTrapeziumProfileDef::BottomXDim() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcTrapeziumProfileDef::setBottomXDim(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcTrapeziumProfileDef::TopXDim() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTrapeziumProfileDef::setTopXDim(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcTrapeziumProfileDef::YDim() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcTrapeziumProfileDef::setYDim(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcTrapeziumProfileDef::TopXOffset() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcTrapeziumProfileDef::setTopXOffset(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } // const IfcParse::entity& Ifc4x3_rc1::IfcTrapeziumProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1235]); } const IfcParse::entity& Ifc4x3_rc1::IfcTrapeziumProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1235]); } // Ifc4x3_rc1::IfcTrapeziumProfileDef::IfcTrapeziumProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcTrapeziumProfileDef::IfcTrapeziumProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_BottomXDim, double v5_TopXDim, double v6_YDim, double v7_TopXOffset) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(7))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_BottomXDim));set_attribute_value(4, (v5_TopXDim));set_attribute_value(5, (v6_YDim));set_attribute_value(6, (v7_TopXOffset));; populate_derived(); } // Function implementations for IfcTriangulatedFaceSet std::optional< std::vector< std::vector< double > > > Ifc4x3_rc1::IfcTriangulatedFaceSet::Normals() const { if(get_attribute_value(1).isNull()) { return std::nullopt; } std::vector< std::vector< double > > v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcTriangulatedFaceSet::setNormals(const std::optional< std::vector< std::vector< double > > >& v) { if (v) {set_attribute_value(1, *v);} else {unset_attribute_value(1);} } std::optional< bool > Ifc4x3_rc1::IfcTriangulatedFaceSet::Closed() const { if(get_attribute_value(2).isNull()) { return std::nullopt; } bool v = get_attribute_value(2); return v; } void Ifc4x3_rc1::IfcTriangulatedFaceSet::setClosed(const std::optional< bool >& v) { if (v) {set_attribute_value(2, *v);} else {unset_attribute_value(2);} } std::vector< std::vector< int > > Ifc4x3_rc1::IfcTriangulatedFaceSet::CoordIndex() const { std::vector< std::vector< int > > v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcTriangulatedFaceSet::setCoordIndex(const std::vector< std::vector< int > >& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::vector< int > /*[1:?]*/ > Ifc4x3_rc1::IfcTriangulatedFaceSet::PnIndex() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::vector< int > /*[1:?]*/ v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTriangulatedFaceSet::setPnIndex(const std::optional< std::vector< int > /*[1:?]*/ >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTriangulatedFaceSet::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1236]); } const IfcParse::entity& Ifc4x3_rc1::IfcTriangulatedFaceSet::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1236]); } // Ifc4x3_rc1::IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(const std::weak_ptr& e) : IfcTessellatedFaceSet(e) { } // Ifc4x3_rc1::IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(::Ifc4x3_rc1::IfcCartesianPointList3D v1_Coordinates, std::optional< std::vector< std::vector< double > > > v2_Normals, std::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, std::optional< std::vector< int > /*[1:?]*/ > v5_PnIndex) : IfcTessellatedFaceSet(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_Coordinates)); if (v2_Normals) {set_attribute_value(1, (*v2_Normals)); } if (v3_Closed) {set_attribute_value(2, (*v3_Closed)); }set_attribute_value(3, (v4_CoordIndex)); if (v5_PnIndex) {set_attribute_value(4, (*v5_PnIndex)); }; populate_derived(); } // Function implementations for IfcTriangulatedIrregularNetwork std::vector< int > /*[1:?]*/ Ifc4x3_rc1::IfcTriangulatedIrregularNetwork::Flags() const { std::vector< int > /*[1:?]*/ v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcTriangulatedIrregularNetwork::setFlags(const std::vector< int > /*[1:?]*/& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } // const IfcParse::entity& Ifc4x3_rc1::IfcTriangulatedIrregularNetwork::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1237]); } const IfcParse::entity& Ifc4x3_rc1::IfcTriangulatedIrregularNetwork::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1237]); } // Ifc4x3_rc1::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(const std::weak_ptr& e) : IfcTriangulatedFaceSet(e) { } // Ifc4x3_rc1::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::Ifc4x3_rc1::IfcCartesianPointList3D v1_Coordinates, std::optional< std::vector< std::vector< double > > > v2_Normals, std::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, std::optional< std::vector< int > /*[1:?]*/ > v5_PnIndex, std::vector< int > /*[1:?]*/ v6_Flags) : IfcTriangulatedFaceSet(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_Coordinates)); if (v2_Normals) {set_attribute_value(1, (*v2_Normals)); } if (v3_Closed) {set_attribute_value(2, (*v3_Closed)); }set_attribute_value(3, (v4_CoordIndex)); if (v5_PnIndex) {set_attribute_value(4, (*v5_PnIndex)); }set_attribute_value(5, (v6_Flags));; populate_derived(); } // Function implementations for IfcTrimmedCurve ::Ifc4x3_rc1::IfcCurve Ifc4x3_rc1::IfcTrimmedCurve::BasisCurve() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcCurve>(); } void Ifc4x3_rc1::IfcTrimmedCurve::setBasisCurve(const ::Ifc4x3_rc1::IfcCurve& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } std::vector< ::Ifc4x3_rc1::IfcTrimmingSelect > Ifc4x3_rc1::IfcTrimmedCurve::Trim1() const { std::vector es = get_attribute_value(1); return cast_vector<::Ifc4x3_rc1::IfcTrimmingSelect>(es); } void Ifc4x3_rc1::IfcTrimmedCurve::setTrim1(const std::vector< ::Ifc4x3_rc1::IfcTrimmingSelect >& v) { set_attribute_value(1, cast_vector(v));if constexpr (false)unset_attribute_value(1); } std::vector< ::Ifc4x3_rc1::IfcTrimmingSelect > Ifc4x3_rc1::IfcTrimmedCurve::Trim2() const { std::vector es = get_attribute_value(2); return cast_vector<::Ifc4x3_rc1::IfcTrimmingSelect>(es); } void Ifc4x3_rc1::IfcTrimmedCurve::setTrim2(const std::vector< ::Ifc4x3_rc1::IfcTrimmingSelect >& v) { set_attribute_value(2, cast_vector(v));if constexpr (false)unset_attribute_value(2); } bool Ifc4x3_rc1::IfcTrimmedCurve::SenseAgreement() const { bool v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcTrimmedCurve::setSenseAgreement(const bool& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } ::Ifc4x3_rc1::IfcTrimmingPreference::Value Ifc4x3_rc1::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x3_rc1::IfcTrimmingPreference::FromString(get_attribute_value(4)); } void Ifc4x3_rc1::IfcTrimmedCurve::setMasterRepresentation(const ::Ifc4x3_rc1::IfcTrimmingPreference::Value& v) { set_attribute_value(4, EnumerationReference(&::Ifc4x3_rc1::IfcTrimmingPreference::Class(), (size_t) v));if constexpr (false)unset_attribute_value(4); } // const IfcParse::entity& Ifc4x3_rc1::IfcTrimmedCurve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1238]); } const IfcParse::entity& Ifc4x3_rc1::IfcTrimmedCurve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1238]); } // Ifc4x3_rc1::IfcTrimmedCurve::IfcTrimmedCurve(const std::weak_ptr& e) : IfcBoundedCurve(e) { } // Ifc4x3_rc1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc1::IfcCurve v1_BasisCurve, std::vector< ::Ifc4x3_rc1::IfcTrimmingSelect > v2_Trim1, std::vector< ::Ifc4x3_rc1::IfcTrimmingSelect > v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve(const std::weak_ptr&(in_memory_attribute_storage(5))) { set_attribute_value(0, (v1_BasisCurve));set_attribute_value(1, (v2_Trim1)->generalize());set_attribute_value(2, (v3_Trim2)->generalize());set_attribute_value(3, (v4_SenseAgreement));set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcTrimmingPreference::Class(),(size_t)v5_MasterRepresentation)));; populate_derived(); } // Function implementations for IfcTubeBundle std::optional< ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value > Ifc4x3_rc1::IfcTubeBundle::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcTubeBundle::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcTubeBundle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1242]); } const IfcParse::entity& Ifc4x3_rc1::IfcTubeBundle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1242]); } // Ifc4x3_rc1::IfcTubeBundle::IfcTubeBundle(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcTubeBundle::IfcTubeBundle(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcTubeBundleType ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value Ifc4x3_rc1::IfcTubeBundleType::PredefinedType() const { return ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcTubeBundleType::setPredefinedType(const ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcTubeBundleType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1243]); } const IfcParse::entity& Ifc4x3_rc1::IfcTubeBundleType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1243]); } // Ifc4x3_rc1::IfcTubeBundleType::IfcTubeBundleType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcTubeBundleType::IfcTubeBundleType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcTypeObject std::optional< std::string > Ifc4x3_rc1::IfcTypeObject::ApplicableOccurrence() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcTypeObject::setApplicableOccurrence(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > Ifc4x3_rc1::IfcTypeObject::HasPropertySets() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(5); return cast_vector<::Ifc4x3_rc1::IfcPropertySetDefinition>(es); } void Ifc4x3_rc1::IfcTypeObject::setHasPropertySets(const std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > >& v) { if (v) {set_attribute_value(5, cast_vector(*v));} else {unset_attribute_value(5);} } std::vector<::Ifc4x3_rc1::IfcRelDefinesByType> Ifc4x3_rc1::IfcTypeObject::Types() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[946], 5)); } // const IfcParse::entity& Ifc4x3_rc1::IfcTypeObject::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1245]); } const IfcParse::entity& Ifc4x3_rc1::IfcTypeObject::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1245]); } // Ifc4x3_rc1::IfcTypeObject::IfcTypeObject(const std::weak_ptr& e) : IfcObjectDefinition(e) { } // Ifc4x3_rc1::IfcTypeObject::IfcTypeObject(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets) : IfcObjectDefinition(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); }; populate_derived(); } // Function implementations for IfcTypeProcess std::optional< std::string > Ifc4x3_rc1::IfcTypeProcess::Identification() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcTypeProcess::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcTypeProcess::LongDescription() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcTypeProcess::setLongDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcTypeProcess::ProcessType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcTypeProcess::setProcessType(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::vector<::Ifc4x3_rc1::IfcRelAssignsToProcess> Ifc4x3_rc1::IfcTypeProcess::OperatesOn() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[916], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcTypeProcess::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1246]); } const IfcParse::entity& Ifc4x3_rc1::IfcTypeProcess::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1246]); } // Ifc4x3_rc1::IfcTypeProcess::IfcTypeProcess(const std::weak_ptr& e) : IfcTypeObject(e) { } // Ifc4x3_rc1::IfcTypeProcess::IfcTypeProcess(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ProcessType) : IfcTypeObject(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ProcessType) {set_attribute_value(8, (*v9_ProcessType)); }; populate_derived(); } // Function implementations for IfcTypeProduct std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > Ifc4x3_rc1::IfcTypeProduct::RepresentationMaps() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(6); return cast_vector<::Ifc4x3_rc1::IfcRepresentationMap>(es); } void Ifc4x3_rc1::IfcTypeProduct::setRepresentationMaps(const std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > >& v) { if (v) {set_attribute_value(6, cast_vector(*v));} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcTypeProduct::Tag() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcTypeProduct::setTag(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::vector<::Ifc4x3_rc1::IfcRelAssignsToProduct> Ifc4x3_rc1::IfcTypeProduct::ReferencedBy() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[917], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcTypeProduct::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1247]); } const IfcParse::entity& Ifc4x3_rc1::IfcTypeProduct::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1247]); } // Ifc4x3_rc1::IfcTypeProduct::IfcTypeProduct(const std::weak_ptr& e) : IfcTypeObject(e) { } // Ifc4x3_rc1::IfcTypeProduct::IfcTypeProduct(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag) : IfcTypeObject(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcTypeResource std::optional< std::string > Ifc4x3_rc1::IfcTypeResource::Identification() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcTypeResource::setIdentification(const std::optional< std::string >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< std::string > Ifc4x3_rc1::IfcTypeResource::LongDescription() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::string v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcTypeResource::setLongDescription(const std::optional< std::string >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcTypeResource::ResourceType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcTypeResource::setResourceType(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::vector<::Ifc4x3_rc1::IfcRelAssignsToResource> Ifc4x3_rc1::IfcTypeResource::ResourceOf() const { return cast_vector(data()->file()->getInverse(data()->id(), IFC4X3_RC1_types[918], 6)); } // const IfcParse::entity& Ifc4x3_rc1::IfcTypeResource::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1248]); } const IfcParse::entity& Ifc4x3_rc1::IfcTypeResource::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1248]); } // Ifc4x3_rc1::IfcTypeResource::IfcTypeResource(const std::weak_ptr& e) : IfcTypeObject(e) { } // Ifc4x3_rc1::IfcTypeResource::IfcTypeResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::string > v7_Identification, std::optional< std::string > v8_LongDescription, std::optional< std::string > v9_ResourceType) : IfcTypeObject(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_Identification) {set_attribute_value(6, (*v7_Identification)); } if (v8_LongDescription) {set_attribute_value(7, (*v8_LongDescription)); } if (v9_ResourceType) {set_attribute_value(8, (*v9_ResourceType)); }; populate_derived(); } // Function implementations for IfcUShapeProfileDef double Ifc4x3_rc1::IfcUShapeProfileDef::Depth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcUShapeProfileDef::setDepth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcUShapeProfileDef::FlangeWidth() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcUShapeProfileDef::setFlangeWidth(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcUShapeProfileDef::WebThickness() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcUShapeProfileDef::setWebThickness(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcUShapeProfileDef::FlangeThickness() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcUShapeProfileDef::setFlangeThickness(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< double > Ifc4x3_rc1::IfcUShapeProfileDef::FilletRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcUShapeProfileDef::setFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcUShapeProfileDef::EdgeRadius() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcUShapeProfileDef::setEdgeRadius(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< double > Ifc4x3_rc1::IfcUShapeProfileDef::FlangeSlope() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcUShapeProfileDef::setFlangeSlope(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcUShapeProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1259]); } const IfcParse::entity& Ifc4x3_rc1::IfcUShapeProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1259]); } // Ifc4x3_rc1::IfcUShapeProfileDef::IfcUShapeProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, std::optional< double > v8_FilletRadius, std::optional< double > v9_EdgeRadius, std::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_Depth));set_attribute_value(4, (v5_FlangeWidth));set_attribute_value(5, (v6_WebThickness));set_attribute_value(6, (v7_FlangeThickness)); if (v8_FilletRadius) {set_attribute_value(7, (*v8_FilletRadius)); } if (v9_EdgeRadius) {set_attribute_value(8, (*v9_EdgeRadius)); } if (v10_FlangeSlope) {set_attribute_value(9, (*v10_FlangeSlope)); }; populate_derived(); } // Function implementations for IfcUnitAssignment std::vector< ::Ifc4x3_rc1::IfcUnit > Ifc4x3_rc1::IfcUnitAssignment::Units() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcUnit>(es); } void Ifc4x3_rc1::IfcUnitAssignment::setUnits(const std::vector< ::Ifc4x3_rc1::IfcUnit >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcUnitAssignment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1256]); } const IfcParse::entity& Ifc4x3_rc1::IfcUnitAssignment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1256]); } // Ifc4x3_rc1::IfcUnitAssignment::IfcUnitAssignment(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcUnitAssignment::IfcUnitAssignment(std::vector< ::Ifc4x3_rc1::IfcUnit > v1_Units) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_Units)->generalize());; populate_derived(); } // Function implementations for IfcUnitaryControlElement std::optional< ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value > Ifc4x3_rc1::IfcUnitaryControlElement::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcUnitaryControlElement::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcUnitaryControlElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1250]); } const IfcParse::entity& Ifc4x3_rc1::IfcUnitaryControlElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1250]); } // Ifc4x3_rc1::IfcUnitaryControlElement::IfcUnitaryControlElement(const std::weak_ptr& e) : IfcDistributionControlElement(e) { } // Ifc4x3_rc1::IfcUnitaryControlElement::IfcUnitaryControlElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value > v9_PredefinedType) : IfcDistributionControlElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcUnitaryControlElementType ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value Ifc4x3_rc1::IfcUnitaryControlElementType::PredefinedType() const { return ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcUnitaryControlElementType::setPredefinedType(const ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcUnitaryControlElementType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1251]); } const IfcParse::entity& Ifc4x3_rc1::IfcUnitaryControlElementType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1251]); } // Ifc4x3_rc1::IfcUnitaryControlElementType::IfcUnitaryControlElementType(const std::weak_ptr& e) : IfcDistributionControlElementType(e) { } // Ifc4x3_rc1::IfcUnitaryControlElementType::IfcUnitaryControlElementType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value v10_PredefinedType) : IfcDistributionControlElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcUnitaryEquipment std::optional< ::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value > Ifc4x3_rc1::IfcUnitaryEquipment::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcUnitaryEquipment::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcUnitaryEquipment::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1253]); } const IfcParse::entity& Ifc4x3_rc1::IfcUnitaryEquipment::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1253]); } // Ifc4x3_rc1::IfcUnitaryEquipment::IfcUnitaryEquipment(const std::weak_ptr& e) : IfcEnergyConversionDevice(e) { } // Ifc4x3_rc1::IfcUnitaryEquipment::IfcUnitaryEquipment(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value > v9_PredefinedType) : IfcEnergyConversionDevice(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcUnitaryEquipmentType ::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value Ifc4x3_rc1::IfcUnitaryEquipmentType::PredefinedType() const { return ::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcUnitaryEquipmentType::setPredefinedType(const ::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcUnitaryEquipmentType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1254]); } const IfcParse::entity& Ifc4x3_rc1::IfcUnitaryEquipmentType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1254]); } // Ifc4x3_rc1::IfcUnitaryEquipmentType::IfcUnitaryEquipmentType(const std::weak_ptr& e) : IfcEnergyConversionDeviceType(e) { } // Ifc4x3_rc1::IfcUnitaryEquipmentType::IfcUnitaryEquipmentType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Value v10_PredefinedType) : IfcEnergyConversionDeviceType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcValve std::optional< ::Ifc4x3_rc1::IfcValveTypeEnum::Value > Ifc4x3_rc1::IfcValve::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcValveTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcValve::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcValveTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcValveTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcValve::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1261]); } const IfcParse::entity& Ifc4x3_rc1::IfcValve::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1261]); } // Ifc4x3_rc1::IfcValve::IfcValve(const std::weak_ptr& e) : IfcFlowController(e) { } // Ifc4x3_rc1::IfcValve::IfcValve(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcValveTypeEnum::Value > v9_PredefinedType) : IfcFlowController(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcValveTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcValveType ::Ifc4x3_rc1::IfcValveTypeEnum::Value Ifc4x3_rc1::IfcValveType::PredefinedType() const { return ::Ifc4x3_rc1::IfcValveTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcValveType::setPredefinedType(const ::Ifc4x3_rc1::IfcValveTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcValveTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcValveType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1262]); } const IfcParse::entity& Ifc4x3_rc1::IfcValveType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1262]); } // Ifc4x3_rc1::IfcValveType::IfcValveType(const std::weak_ptr& e) : IfcFlowControllerType(e) { } // Ifc4x3_rc1::IfcValveType::IfcValveType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcValveTypeEnum::Value v10_PredefinedType) : IfcFlowControllerType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcValveTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcVector ::Ifc4x3_rc1::IfcDirection Ifc4x3_rc1::IfcVector::Orientation() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcDirection>(); } void Ifc4x3_rc1::IfcVector::setOrientation(const ::Ifc4x3_rc1::IfcDirection& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } double Ifc4x3_rc1::IfcVector::Magnitude() const { double v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcVector::setMagnitude(const double& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcVector::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1265]); } const IfcParse::entity& Ifc4x3_rc1::IfcVector::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1265]); } // Ifc4x3_rc1::IfcVector::IfcVector(const std::weak_ptr& e) : IfcGeometricRepresentationItem(e) { } // Ifc4x3_rc1::IfcVector::IfcVector(::Ifc4x3_rc1::IfcDirection v1_Orientation, double v2_Magnitude) : IfcGeometricRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_Orientation));set_attribute_value(1, (v2_Magnitude));; populate_derived(); } // Function implementations for IfcVertex // const IfcParse::entity& Ifc4x3_rc1::IfcVertex::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1267]); } const IfcParse::entity& Ifc4x3_rc1::IfcVertex::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1267]); } // Ifc4x3_rc1::IfcVertex::IfcVertex(const std::weak_ptr& e) : IfcTopologicalRepresentationItem(e) { } // Ifc4x3_rc1::IfcVertex::IfcVertex() : IfcTopologicalRepresentationItem(const std::weak_ptr&(in_memory_attribute_storage(0))) { ; populate_derived(); } // Function implementations for IfcVertexLoop ::Ifc4x3_rc1::IfcVertex Ifc4x3_rc1::IfcVertexLoop::LoopVertex() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcVertex>(); } void Ifc4x3_rc1::IfcVertexLoop::setLoopVertex(const ::Ifc4x3_rc1::IfcVertex& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcVertexLoop::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1268]); } const IfcParse::entity& Ifc4x3_rc1::IfcVertexLoop::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1268]); } // Ifc4x3_rc1::IfcVertexLoop::IfcVertexLoop(const std::weak_ptr& e) : IfcLoop(e) { } // Ifc4x3_rc1::IfcVertexLoop::IfcVertexLoop(::Ifc4x3_rc1::IfcVertex v1_LoopVertex) : IfcLoop(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_LoopVertex));; populate_derived(); } // Function implementations for IfcVertexPoint ::Ifc4x3_rc1::IfcPoint Ifc4x3_rc1::IfcVertexPoint::VertexGeometry() const { return ((express::Base)(get_attribute_value(0))).as<::Ifc4x3_rc1::IfcPoint>(); } void Ifc4x3_rc1::IfcVertexPoint::setVertexGeometry(const ::Ifc4x3_rc1::IfcPoint& v) { set_attribute_value(0, v);if constexpr (false)unset_attribute_value(0); } // const IfcParse::entity& Ifc4x3_rc1::IfcVertexPoint::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1269]); } const IfcParse::entity& Ifc4x3_rc1::IfcVertexPoint::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1269]); } // Ifc4x3_rc1::IfcVertexPoint::IfcVertexPoint(const std::weak_ptr& e) : IfcVertex(e) { } // Ifc4x3_rc1::IfcVertexPoint::IfcVertexPoint(::Ifc4x3_rc1::IfcPoint v1_VertexGeometry) : IfcVertex(const std::weak_ptr&(in_memory_attribute_storage(1))) { set_attribute_value(0, (v1_VertexGeometry));; populate_derived(); } // Function implementations for IfcVibrationDamper std::optional< ::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value > Ifc4x3_rc1::IfcVibrationDamper::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcVibrationDamper::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcVibrationDamper::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1270]); } const IfcParse::entity& Ifc4x3_rc1::IfcVibrationDamper::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1270]); } // Ifc4x3_rc1::IfcVibrationDamper::IfcVibrationDamper(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcVibrationDamper::IfcVibrationDamper(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value > v9_PredefinedType) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcVibrationDamperType std::optional< ::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value > Ifc4x3_rc1::IfcVibrationDamperType::PredefinedType() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcVibrationDamperType::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value >& v) { if (v) {set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(9);} } // const IfcParse::entity& Ifc4x3_rc1::IfcVibrationDamperType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1271]); } const IfcParse::entity& Ifc4x3_rc1::IfcVibrationDamperType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1271]); } // Ifc4x3_rc1::IfcVibrationDamperType::IfcVibrationDamperType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcVibrationDamperType::IfcVibrationDamperType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, std::optional< ::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Value > v10_PredefinedType) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); } if (v10_PredefinedType) {set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcVibrationDamperTypeEnum::Class(),(size_t)*v10_PredefinedType))); }; populate_derived(); } // Function implementations for IfcVibrationIsolator std::optional< ::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value > Ifc4x3_rc1::IfcVibrationIsolator::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcVibrationIsolator::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcVibrationIsolator::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1273]); } const IfcParse::entity& Ifc4x3_rc1::IfcVibrationIsolator::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1273]); } // Ifc4x3_rc1::IfcVibrationIsolator::IfcVibrationIsolator(const std::weak_ptr& e) : IfcElementComponent(e) { } // Ifc4x3_rc1::IfcVibrationIsolator::IfcVibrationIsolator(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value > v9_PredefinedType) : IfcElementComponent(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcVibrationIsolatorType ::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value Ifc4x3_rc1::IfcVibrationIsolatorType::PredefinedType() const { return ::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcVibrationIsolatorType::setPredefinedType(const ::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcVibrationIsolatorType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1274]); } const IfcParse::entity& Ifc4x3_rc1::IfcVibrationIsolatorType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1274]); } // Ifc4x3_rc1::IfcVibrationIsolatorType::IfcVibrationIsolatorType(const std::weak_ptr& e) : IfcElementComponentType(e) { } // Ifc4x3_rc1::IfcVibrationIsolatorType::IfcVibrationIsolatorType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Value v10_PredefinedType) : IfcElementComponentType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcVirtualElement // const IfcParse::entity& Ifc4x3_rc1::IfcVirtualElement::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1276]); } const IfcParse::entity& Ifc4x3_rc1::IfcVirtualElement::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1276]); } // Ifc4x3_rc1::IfcVirtualElement::IfcVirtualElement(const std::weak_ptr& e) : IfcElement(e) { } // Ifc4x3_rc1::IfcVirtualElement::IfcVirtualElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcElement(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcVirtualGridIntersection std::vector< ::Ifc4x3_rc1::IfcGridAxis > Ifc4x3_rc1::IfcVirtualGridIntersection::IntersectingAxes() const { std::vector es = get_attribute_value(0); return cast_vector<::Ifc4x3_rc1::IfcGridAxis>(es); } void Ifc4x3_rc1::IfcVirtualGridIntersection::setIntersectingAxes(const std::vector< ::Ifc4x3_rc1::IfcGridAxis >& v) { set_attribute_value(0, cast_vector(v));if constexpr (false)unset_attribute_value(0); } std::vector< double > /*[2:3]*/ Ifc4x3_rc1::IfcVirtualGridIntersection::OffsetDistances() const { std::vector< double > /*[2:3]*/ v = get_attribute_value(1); return v; } void Ifc4x3_rc1::IfcVirtualGridIntersection::setOffsetDistances(const std::vector< double > /*[2:3]*/& v) { set_attribute_value(1, v);if constexpr (false)unset_attribute_value(1); } // const IfcParse::entity& Ifc4x3_rc1::IfcVirtualGridIntersection::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1277]); } const IfcParse::entity& Ifc4x3_rc1::IfcVirtualGridIntersection::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1277]); } // Ifc4x3_rc1::IfcVirtualGridIntersection::IfcVirtualGridIntersection(const std::weak_ptr& e) : express::Entity(e) { } // Ifc4x3_rc1::IfcVirtualGridIntersection::IfcVirtualGridIntersection(std::vector< ::Ifc4x3_rc1::IfcGridAxis > v1_IntersectingAxes, std::vector< double > /*[2:3]*/ v2_OffsetDistances) : express::Entity(const std::weak_ptr&(in_memory_attribute_storage(2))) { set_attribute_value(0, (v1_IntersectingAxes)->generalize());set_attribute_value(1, (v2_OffsetDistances));; populate_derived(); } // Function implementations for IfcVoidStratum // const IfcParse::entity& Ifc4x3_rc1::IfcVoidStratum::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1280]); } const IfcParse::entity& Ifc4x3_rc1::IfcVoidStratum::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1280]); } // Ifc4x3_rc1::IfcVoidStratum::IfcVoidStratum(const std::weak_ptr& e) : IfcGeotechnicalStratum(e) { } // Ifc4x3_rc1::IfcVoidStratum::IfcVoidStratum(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcGeotechnicalStratum(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcVoidingFeature std::optional< ::Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Value > Ifc4x3_rc1::IfcVoidingFeature::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcVoidingFeature::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcVoidingFeature::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1278]); } const IfcParse::entity& Ifc4x3_rc1::IfcVoidingFeature::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1278]); } // Ifc4x3_rc1::IfcVoidingFeature::IfcVoidingFeature(const std::weak_ptr& e) : IfcFeatureElementSubtraction(e) { } // Ifc4x3_rc1::IfcVoidingFeature::IfcVoidingFeature(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Value > v9_PredefinedType) : IfcFeatureElementSubtraction(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcWall std::optional< ::Ifc4x3_rc1::IfcWallTypeEnum::Value > Ifc4x3_rc1::IfcWall::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcWallTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcWall::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcWallTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcWallTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWall::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1283]); } const IfcParse::entity& Ifc4x3_rc1::IfcWall::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1283]); } // Ifc4x3_rc1::IfcWall::IfcWall(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcWall::IfcWall(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcWallTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcWallTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcWallElementedCase // const IfcParse::entity& Ifc4x3_rc1::IfcWallElementedCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1284]); } const IfcParse::entity& Ifc4x3_rc1::IfcWallElementedCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1284]); } // Ifc4x3_rc1::IfcWallElementedCase::IfcWallElementedCase(const std::weak_ptr& e) : IfcWall(e) { } // Ifc4x3_rc1::IfcWallElementedCase::IfcWallElementedCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcWallTypeEnum::Value > v9_PredefinedType) : IfcWall(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcWallTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcWallStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcWallStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1285]); } const IfcParse::entity& Ifc4x3_rc1::IfcWallStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1285]); } // Ifc4x3_rc1::IfcWallStandardCase::IfcWallStandardCase(const std::weak_ptr& e) : IfcWall(e) { } // Ifc4x3_rc1::IfcWallStandardCase::IfcWallStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcWallTypeEnum::Value > v9_PredefinedType) : IfcWall(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcWallTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcWallType ::Ifc4x3_rc1::IfcWallTypeEnum::Value Ifc4x3_rc1::IfcWallType::PredefinedType() const { return ::Ifc4x3_rc1::IfcWallTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcWallType::setPredefinedType(const ::Ifc4x3_rc1::IfcWallTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcWallTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcWallType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1286]); } const IfcParse::entity& Ifc4x3_rc1::IfcWallType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1286]); } // Ifc4x3_rc1::IfcWallType::IfcWallType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcWallType::IfcWallType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcWallTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcWallTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcWasteTerminal std::optional< ::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value > Ifc4x3_rc1::IfcWasteTerminal::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcWasteTerminal::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWasteTerminal::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1291]); } const IfcParse::entity& Ifc4x3_rc1::IfcWasteTerminal::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1291]); } // Ifc4x3_rc1::IfcWasteTerminal::IfcWasteTerminal(const std::weak_ptr& e) : IfcFlowTerminal(e) { } // Ifc4x3_rc1::IfcWasteTerminal::IfcWasteTerminal(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< ::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value > v9_PredefinedType) : IfcFlowTerminal(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcWasteTerminalType ::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value Ifc4x3_rc1::IfcWasteTerminalType::PredefinedType() const { return ::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcWasteTerminalType::setPredefinedType(const ::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } // const IfcParse::entity& Ifc4x3_rc1::IfcWasteTerminalType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1292]); } const IfcParse::entity& Ifc4x3_rc1::IfcWasteTerminalType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1292]); } // Ifc4x3_rc1::IfcWasteTerminalType::IfcWasteTerminalType(const std::weak_ptr& e) : IfcFlowTerminalType(e) { } // Ifc4x3_rc1::IfcWasteTerminalType::IfcWasteTerminalType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Value v10_PredefinedType) : IfcFlowTerminalType(const std::weak_ptr&(in_memory_attribute_storage(10))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcWasteTerminalTypeEnum::Class(),(size_t)v10_PredefinedType)));; populate_derived(); } // Function implementations for IfcWaterStratum // const IfcParse::entity& Ifc4x3_rc1::IfcWaterStratum::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1294]); } const IfcParse::entity& Ifc4x3_rc1::IfcWaterStratum::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1294]); } // Ifc4x3_rc1::IfcWaterStratum::IfcWaterStratum(const std::weak_ptr& e) : IfcGeotechnicalStratum(e) { } // Ifc4x3_rc1::IfcWaterStratum::IfcWaterStratum(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag) : IfcGeotechnicalStratum(const std::weak_ptr&(in_memory_attribute_storage(8))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }; populate_derived(); } // Function implementations for IfcWindow std::optional< double > Ifc4x3_rc1::IfcWindow::OverallHeight() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcWindow::setOverallHeight(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< double > Ifc4x3_rc1::IfcWindow::OverallWidth() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcWindow::setOverallWidth(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< ::Ifc4x3_rc1::IfcWindowTypeEnum::Value > Ifc4x3_rc1::IfcWindow::PredefinedType() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcWindowTypeEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcWindow::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcWindowTypeEnum::Value >& v) { if (v) {set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(10);} } std::optional< ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value > Ifc4x3_rc1::IfcWindow::PartitioningType() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::FromString(get_attribute_value(11)); } void Ifc4x3_rc1::IfcWindow::setPartitioningType(const std::optional< ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value >& v) { if (v) {set_attribute_value(11, EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Class(), (size_t) *v));} else {unset_attribute_value(11);} } std::optional< std::string > Ifc4x3_rc1::IfcWindow::UserDefinedPartitioningType() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcWindow::setUserDefinedPartitioningType(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWindow::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1295]); } const IfcParse::entity& Ifc4x3_rc1::IfcWindow::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1295]); } // Ifc4x3_rc1::IfcWindow::IfcWindow(const std::weak_ptr& e) : IfcBuiltElement(e) { } // Ifc4x3_rc1::IfcWindow::IfcWindow(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< double > v9_OverallHeight, std::optional< double > v10_OverallWidth, std::optional< ::Ifc4x3_rc1::IfcWindowTypeEnum::Value > v11_PredefinedType, std::optional< ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value > v12_PartitioningType, std::optional< std::string > v13_UserDefinedPartitioningType) : IfcBuiltElement(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_OverallHeight) {set_attribute_value(8, (*v9_OverallHeight)); } if (v10_OverallWidth) {set_attribute_value(9, (*v10_OverallWidth)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypeEnum::Class(),(size_t)*v11_PredefinedType))); } if (v12_PartitioningType) {set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Class(),(size_t)*v12_PartitioningType))); } if (v13_UserDefinedPartitioningType) {set_attribute_value(12, (*v13_UserDefinedPartitioningType)); }; populate_derived(); } // Function implementations for IfcWindowLiningProperties std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::LiningDepth() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setLiningDepth(const std::optional< double >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::LiningThickness() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setLiningThickness(const std::optional< double >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::TransomThickness() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setTransomThickness(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::MullionThickness() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setMullionThickness(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::FirstTransomOffset() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setFirstTransomOffset(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::SecondTransomOffset() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } double v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setSecondTransomOffset(const std::optional< double >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::FirstMullionOffset() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } double v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setFirstMullionOffset(const std::optional< double >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::SecondMullionOffset() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } double v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setSecondMullionOffset(const std::optional< double >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } ::Ifc4x3_rc1::IfcShapeAspect Ifc4x3_rc1::IfcWindowLiningProperties::ShapeAspectStyle() const { if(get_attribute_value(12).isNull()) { return ::Ifc4x3_rc1::IfcShapeAspect{}; } return ((express::Base)(get_attribute_value(12))).as<::Ifc4x3_rc1::IfcShapeAspect>(); } void Ifc4x3_rc1::IfcWindowLiningProperties::setShapeAspectStyle(const ::Ifc4x3_rc1::IfcShapeAspect& v) { set_attribute_value(12, v);if constexpr (false)unset_attribute_value(12); } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::LiningOffset() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } double v = get_attribute_value(13); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setLiningOffset(const std::optional< double >& v) { if (v) {set_attribute_value(13, *v);} else {unset_attribute_value(13);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::LiningToPanelOffsetX() const { if(get_attribute_value(14).isNull()) { return std::nullopt; } double v = get_attribute_value(14); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setLiningToPanelOffsetX(const std::optional< double >& v) { if (v) {set_attribute_value(14, *v);} else {unset_attribute_value(14);} } std::optional< double > Ifc4x3_rc1::IfcWindowLiningProperties::LiningToPanelOffsetY() const { if(get_attribute_value(15).isNull()) { return std::nullopt; } double v = get_attribute_value(15); return v; } void Ifc4x3_rc1::IfcWindowLiningProperties::setLiningToPanelOffsetY(const std::optional< double >& v) { if (v) {set_attribute_value(15, *v);} else {unset_attribute_value(15);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWindowLiningProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1296]); } const IfcParse::entity& Ifc4x3_rc1::IfcWindowLiningProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1296]); } // Ifc4x3_rc1::IfcWindowLiningProperties::IfcWindowLiningProperties(const std::weak_ptr& e) : IfcPreDefinedPropertySet(e) { } // Ifc4x3_rc1::IfcWindowLiningProperties::IfcWindowLiningProperties(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< double > v5_LiningDepth, std::optional< double > v6_LiningThickness, std::optional< double > v7_TransomThickness, std::optional< double > v8_MullionThickness, std::optional< double > v9_FirstTransomOffset, std::optional< double > v10_SecondTransomOffset, std::optional< double > v11_FirstMullionOffset, std::optional< double > v12_SecondMullionOffset, ::Ifc4x3_rc1::IfcShapeAspect v13_ShapeAspectStyle, std::optional< double > v14_LiningOffset, std::optional< double > v15_LiningToPanelOffsetX, std::optional< double > v16_LiningToPanelOffsetY) : IfcPreDefinedPropertySet(const std::weak_ptr&(in_memory_attribute_storage(16))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_LiningDepth) {set_attribute_value(4, (*v5_LiningDepth)); } if (v6_LiningThickness) {set_attribute_value(5, (*v6_LiningThickness)); } if (v7_TransomThickness) {set_attribute_value(6, (*v7_TransomThickness)); } if (v8_MullionThickness) {set_attribute_value(7, (*v8_MullionThickness)); } if (v9_FirstTransomOffset) {set_attribute_value(8, (*v9_FirstTransomOffset)); } if (v10_SecondTransomOffset) {set_attribute_value(9, (*v10_SecondTransomOffset)); } if (v11_FirstMullionOffset) {set_attribute_value(10, (*v11_FirstMullionOffset)); } if (v12_SecondMullionOffset) {set_attribute_value(11, (*v12_SecondMullionOffset)); } if (v13_ShapeAspectStyle) {set_attribute_value(12, (*v13_ShapeAspectStyle)); } if (v14_LiningOffset) {set_attribute_value(13, (*v14_LiningOffset)); } if (v15_LiningToPanelOffsetX) {set_attribute_value(14, (*v15_LiningToPanelOffsetX)); } if (v16_LiningToPanelOffsetY) {set_attribute_value(15, (*v16_LiningToPanelOffsetY)); }; populate_derived(); } // Function implementations for IfcWindowPanelProperties ::Ifc4x3_rc1::IfcWindowPanelOperationEnum::Value Ifc4x3_rc1::IfcWindowPanelProperties::OperationType() const { return ::Ifc4x3_rc1::IfcWindowPanelOperationEnum::FromString(get_attribute_value(4)); } void Ifc4x3_rc1::IfcWindowPanelProperties::setOperationType(const ::Ifc4x3_rc1::IfcWindowPanelOperationEnum::Value& v) { set_attribute_value(4, EnumerationReference(&::Ifc4x3_rc1::IfcWindowPanelOperationEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(4); } ::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value Ifc4x3_rc1::IfcWindowPanelProperties::PanelPosition() const { return ::Ifc4x3_rc1::IfcWindowPanelPositionEnum::FromString(get_attribute_value(5)); } void Ifc4x3_rc1::IfcWindowPanelProperties::setPanelPosition(const ::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value& v) { set_attribute_value(5, EnumerationReference(&::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(5); } std::optional< double > Ifc4x3_rc1::IfcWindowPanelProperties::FrameDepth() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcWindowPanelProperties::setFrameDepth(const std::optional< double >& v) { if (v) {set_attribute_value(6, *v);} else {unset_attribute_value(6);} } std::optional< double > Ifc4x3_rc1::IfcWindowPanelProperties::FrameThickness() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcWindowPanelProperties::setFrameThickness(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } ::Ifc4x3_rc1::IfcShapeAspect Ifc4x3_rc1::IfcWindowPanelProperties::ShapeAspectStyle() const { if(get_attribute_value(8).isNull()) { return ::Ifc4x3_rc1::IfcShapeAspect{}; } return ((express::Base)(get_attribute_value(8))).as<::Ifc4x3_rc1::IfcShapeAspect>(); } void Ifc4x3_rc1::IfcWindowPanelProperties::setShapeAspectStyle(const ::Ifc4x3_rc1::IfcShapeAspect& v) { set_attribute_value(8, v);if constexpr (false)unset_attribute_value(8); } // const IfcParse::entity& Ifc4x3_rc1::IfcWindowPanelProperties::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1299]); } const IfcParse::entity& Ifc4x3_rc1::IfcWindowPanelProperties::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1299]); } // Ifc4x3_rc1::IfcWindowPanelProperties::IfcWindowPanelProperties(const std::weak_ptr& e) : IfcPreDefinedPropertySet(e) { } // Ifc4x3_rc1::IfcWindowPanelProperties::IfcWindowPanelProperties(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcWindowPanelOperationEnum::Value v5_OperationType, ::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Value v6_PanelPosition, std::optional< double > v7_FrameDepth, std::optional< double > v8_FrameThickness, ::Ifc4x3_rc1::IfcShapeAspect v9_ShapeAspectStyle) : IfcPreDefinedPropertySet(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); }set_attribute_value(4, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowPanelOperationEnum::Class(),(size_t)v5_OperationType)));set_attribute_value(5, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowPanelPositionEnum::Class(),(size_t)v6_PanelPosition))); if (v7_FrameDepth) {set_attribute_value(6, (*v7_FrameDepth)); } if (v8_FrameThickness) {set_attribute_value(7, (*v8_FrameThickness)); } if (v9_ShapeAspectStyle) {set_attribute_value(8, (*v9_ShapeAspectStyle)); }; populate_derived(); } // Function implementations for IfcWindowStandardCase // const IfcParse::entity& Ifc4x3_rc1::IfcWindowStandardCase::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1300]); } const IfcParse::entity& Ifc4x3_rc1::IfcWindowStandardCase::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1300]); } // Ifc4x3_rc1::IfcWindowStandardCase::IfcWindowStandardCase(const std::weak_ptr& e) : IfcWindow(e) { } // Ifc4x3_rc1::IfcWindowStandardCase::IfcWindowStandardCase(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation v7_Representation, std::optional< std::string > v8_Tag, std::optional< double > v9_OverallHeight, std::optional< double > v10_OverallWidth, std::optional< ::Ifc4x3_rc1::IfcWindowTypeEnum::Value > v11_PredefinedType, std::optional< ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value > v12_PartitioningType, std::optional< std::string > v13_UserDefinedPartitioningType) : IfcWindow(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_ObjectPlacement) {set_attribute_value(5, (*v6_ObjectPlacement)); } if (v7_Representation) {set_attribute_value(6, (*v7_Representation)); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_OverallHeight) {set_attribute_value(8, (*v9_OverallHeight)); } if (v10_OverallWidth) {set_attribute_value(9, (*v10_OverallWidth)); } if (v11_PredefinedType) {set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypeEnum::Class(),(size_t)*v11_PredefinedType))); } if (v12_PartitioningType) {set_attribute_value(11, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Class(),(size_t)*v12_PartitioningType))); } if (v13_UserDefinedPartitioningType) {set_attribute_value(12, (*v13_UserDefinedPartitioningType)); }; populate_derived(); } // Function implementations for IfcWindowStyle ::Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Value Ifc4x3_rc1::IfcWindowStyle::ConstructionType() const { return ::Ifc4x3_rc1::IfcWindowStyleConstructionEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcWindowStyle::setConstructionType(const ::Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Value& v) { set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(8); } ::Ifc4x3_rc1::IfcWindowStyleOperationEnum::Value Ifc4x3_rc1::IfcWindowStyle::OperationType() const { return ::Ifc4x3_rc1::IfcWindowStyleOperationEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcWindowStyle::setOperationType(const ::Ifc4x3_rc1::IfcWindowStyleOperationEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcWindowStyleOperationEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } bool Ifc4x3_rc1::IfcWindowStyle::ParameterTakesPrecedence() const { bool v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcWindowStyle::setParameterTakesPrecedence(const bool& v) { set_attribute_value(10, v);if constexpr (false)unset_attribute_value(10); } bool Ifc4x3_rc1::IfcWindowStyle::Sizeable() const { bool v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcWindowStyle::setSizeable(const bool& v) { set_attribute_value(11, v);if constexpr (false)unset_attribute_value(11); } // const IfcParse::entity& Ifc4x3_rc1::IfcWindowStyle::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1301]); } const IfcParse::entity& Ifc4x3_rc1::IfcWindowStyle::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1301]); } // Ifc4x3_rc1::IfcWindowStyle::IfcWindowStyle(const std::weak_ptr& e) : IfcTypeProduct(e) { } // Ifc4x3_rc1::IfcWindowStyle::IfcWindowStyle(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, ::Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Value v9_ConstructionType, ::Ifc4x3_rc1::IfcWindowStyleOperationEnum::Value v10_OperationType, bool v11_ParameterTakesPrecedence, bool v12_Sizeable) : IfcTypeProduct(const std::weak_ptr&(in_memory_attribute_storage(12))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); }set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowStyleConstructionEnum::Class(),(size_t)v9_ConstructionType)));set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowStyleOperationEnum::Class(),(size_t)v10_OperationType)));set_attribute_value(10, (v11_ParameterTakesPrecedence));set_attribute_value(11, (v12_Sizeable));; populate_derived(); } // Function implementations for IfcWindowType ::Ifc4x3_rc1::IfcWindowTypeEnum::Value Ifc4x3_rc1::IfcWindowType::PredefinedType() const { return ::Ifc4x3_rc1::IfcWindowTypeEnum::FromString(get_attribute_value(9)); } void Ifc4x3_rc1::IfcWindowType::setPredefinedType(const ::Ifc4x3_rc1::IfcWindowTypeEnum::Value& v) { set_attribute_value(9, EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypeEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(9); } ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value Ifc4x3_rc1::IfcWindowType::PartitioningType() const { return ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::FromString(get_attribute_value(10)); } void Ifc4x3_rc1::IfcWindowType::setPartitioningType(const ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value& v) { set_attribute_value(10, EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Class(), (size_t) v));if constexpr (false)unset_attribute_value(10); } std::optional< bool > Ifc4x3_rc1::IfcWindowType::ParameterTakesPrecedence() const { if(get_attribute_value(11).isNull()) { return std::nullopt; } bool v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcWindowType::setParameterTakesPrecedence(const std::optional< bool >& v) { if (v) {set_attribute_value(11, *v);} else {unset_attribute_value(11);} } std::optional< std::string > Ifc4x3_rc1::IfcWindowType::UserDefinedPartitioningType() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcWindowType::setUserDefinedPartitioningType(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWindowType::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1304]); } const IfcParse::entity& Ifc4x3_rc1::IfcWindowType::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1304]); } // Ifc4x3_rc1::IfcWindowType::IfcWindowType(const std::weak_ptr& e) : IfcBuiltElementType(e) { } // Ifc4x3_rc1::IfcWindowType::IfcWindowType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ApplicableOccurrence, std::optional< std::vector< ::Ifc4x3_rc1::IfcPropertySetDefinition > > v6_HasPropertySets, std::optional< std::vector< ::Ifc4x3_rc1::IfcRepresentationMap > > v7_RepresentationMaps, std::optional< std::string > v8_Tag, std::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcWindowTypeEnum::Value v10_PredefinedType, ::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Value v11_PartitioningType, std::optional< bool > v12_ParameterTakesPrecedence, std::optional< std::string > v13_UserDefinedPartitioningType) : IfcBuiltElementType(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ApplicableOccurrence) {set_attribute_value(4, (*v5_ApplicableOccurrence)); } if (v6_HasPropertySets) {set_attribute_value(5, (*v6_HasPropertySets)->generalize()); } if (v7_RepresentationMaps) {set_attribute_value(6, (*v7_RepresentationMaps)->generalize()); } if (v8_Tag) {set_attribute_value(7, (*v8_Tag)); } if (v9_ElementType) {set_attribute_value(8, (*v9_ElementType)); }set_attribute_value(9, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypeEnum::Class(),(size_t)v10_PredefinedType)));set_attribute_value(10, (EnumerationReference(&::Ifc4x3_rc1::IfcWindowTypePartitioningEnum::Class(),(size_t)v11_PartitioningType))); if (v12_ParameterTakesPrecedence) {set_attribute_value(11, (*v12_ParameterTakesPrecedence)); } if (v13_UserDefinedPartitioningType) {set_attribute_value(12, (*v13_UserDefinedPartitioningType)); }; populate_derived(); } // Function implementations for IfcWorkCalendar std::optional< std::vector< ::Ifc4x3_rc1::IfcWorkTime > > Ifc4x3_rc1::IfcWorkCalendar::WorkingTimes() const { if(get_attribute_value(6).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(6); return cast_vector<::Ifc4x3_rc1::IfcWorkTime>(es); } void Ifc4x3_rc1::IfcWorkCalendar::setWorkingTimes(const std::optional< std::vector< ::Ifc4x3_rc1::IfcWorkTime > >& v) { if (v) {set_attribute_value(6, cast_vector(*v));} else {unset_attribute_value(6);} } std::optional< std::vector< ::Ifc4x3_rc1::IfcWorkTime > > Ifc4x3_rc1::IfcWorkCalendar::ExceptionTimes() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcWorkTime>(es); } void Ifc4x3_rc1::IfcWorkCalendar::setExceptionTimes(const std::optional< std::vector< ::Ifc4x3_rc1::IfcWorkTime > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } std::optional< ::Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Value > Ifc4x3_rc1::IfcWorkCalendar::PredefinedType() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcWorkCalendarTypeEnum::FromString(get_attribute_value(8)); } void Ifc4x3_rc1::IfcWorkCalendar::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Value >& v) { if (v) {set_attribute_value(8, EnumerationReference(&::Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWorkCalendar::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1307]); } const IfcParse::entity& Ifc4x3_rc1::IfcWorkCalendar::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1307]); } // Ifc4x3_rc1::IfcWorkCalendar::IfcWorkCalendar(const std::weak_ptr& e) : IfcControl(e) { } // Ifc4x3_rc1::IfcWorkCalendar::IfcWorkCalendar(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::optional< std::vector< ::Ifc4x3_rc1::IfcWorkTime > > v7_WorkingTimes, std::optional< std::vector< ::Ifc4x3_rc1::IfcWorkTime > > v8_ExceptionTimes, std::optional< ::Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Value > v9_PredefinedType) : IfcControl(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); } if (v7_WorkingTimes) {set_attribute_value(6, (*v7_WorkingTimes)->generalize()); } if (v8_ExceptionTimes) {set_attribute_value(7, (*v8_ExceptionTimes)->generalize()); } if (v9_PredefinedType) {set_attribute_value(8, (EnumerationReference(&::Ifc4x3_rc1::IfcWorkCalendarTypeEnum::Class(),(size_t)*v9_PredefinedType))); }; populate_derived(); } // Function implementations for IfcWorkControl std::string Ifc4x3_rc1::IfcWorkControl::CreationDate() const { std::string v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcWorkControl::setCreationDate(const std::string& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< std::vector< ::Ifc4x3_rc1::IfcPerson > > Ifc4x3_rc1::IfcWorkControl::Creators() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } std::vector es = get_attribute_value(7); return cast_vector<::Ifc4x3_rc1::IfcPerson>(es); } void Ifc4x3_rc1::IfcWorkControl::setCreators(const std::optional< std::vector< ::Ifc4x3_rc1::IfcPerson > >& v) { if (v) {set_attribute_value(7, cast_vector(*v));} else {unset_attribute_value(7);} } std::optional< std::string > Ifc4x3_rc1::IfcWorkControl::Purpose() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } std::string v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcWorkControl::setPurpose(const std::optional< std::string >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } std::optional< std::string > Ifc4x3_rc1::IfcWorkControl::Duration() const { if(get_attribute_value(9).isNull()) { return std::nullopt; } std::string v = get_attribute_value(9); return v; } void Ifc4x3_rc1::IfcWorkControl::setDuration(const std::optional< std::string >& v) { if (v) {set_attribute_value(9, *v);} else {unset_attribute_value(9);} } std::optional< std::string > Ifc4x3_rc1::IfcWorkControl::TotalFloat() const { if(get_attribute_value(10).isNull()) { return std::nullopt; } std::string v = get_attribute_value(10); return v; } void Ifc4x3_rc1::IfcWorkControl::setTotalFloat(const std::optional< std::string >& v) { if (v) {set_attribute_value(10, *v);} else {unset_attribute_value(10);} } std::string Ifc4x3_rc1::IfcWorkControl::StartTime() const { std::string v = get_attribute_value(11); return v; } void Ifc4x3_rc1::IfcWorkControl::setStartTime(const std::string& v) { set_attribute_value(11, v);if constexpr (false)unset_attribute_value(11); } std::optional< std::string > Ifc4x3_rc1::IfcWorkControl::FinishTime() const { if(get_attribute_value(12).isNull()) { return std::nullopt; } std::string v = get_attribute_value(12); return v; } void Ifc4x3_rc1::IfcWorkControl::setFinishTime(const std::optional< std::string >& v) { if (v) {set_attribute_value(12, *v);} else {unset_attribute_value(12);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWorkControl::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1309]); } const IfcParse::entity& Ifc4x3_rc1::IfcWorkControl::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1309]); } // Ifc4x3_rc1::IfcWorkControl::IfcWorkControl(const std::weak_ptr& e) : IfcControl(e) { } // Ifc4x3_rc1::IfcWorkControl::IfcWorkControl(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::string v7_CreationDate, std::optional< std::vector< ::Ifc4x3_rc1::IfcPerson > > v8_Creators, std::optional< std::string > v9_Purpose, std::optional< std::string > v10_Duration, std::optional< std::string > v11_TotalFloat, std::string v12_StartTime, std::optional< std::string > v13_FinishTime) : IfcControl(const std::weak_ptr&(in_memory_attribute_storage(13))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); }set_attribute_value(6, (v7_CreationDate)); if (v8_Creators) {set_attribute_value(7, (*v8_Creators)->generalize()); } if (v9_Purpose) {set_attribute_value(8, (*v9_Purpose)); } if (v10_Duration) {set_attribute_value(9, (*v10_Duration)); } if (v11_TotalFloat) {set_attribute_value(10, (*v11_TotalFloat)); }set_attribute_value(11, (v12_StartTime)); if (v13_FinishTime) {set_attribute_value(12, (*v13_FinishTime)); }; populate_derived(); } // Function implementations for IfcWorkPlan std::optional< ::Ifc4x3_rc1::IfcWorkPlanTypeEnum::Value > Ifc4x3_rc1::IfcWorkPlan::PredefinedType() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcWorkPlanTypeEnum::FromString(get_attribute_value(13)); } void Ifc4x3_rc1::IfcWorkPlan::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcWorkPlanTypeEnum::Value >& v) { if (v) {set_attribute_value(13, EnumerationReference(&::Ifc4x3_rc1::IfcWorkPlanTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(13);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWorkPlan::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1310]); } const IfcParse::entity& Ifc4x3_rc1::IfcWorkPlan::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1310]); } // Ifc4x3_rc1::IfcWorkPlan::IfcWorkPlan(const std::weak_ptr& e) : IfcWorkControl(e) { } // Ifc4x3_rc1::IfcWorkPlan::IfcWorkPlan(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::string v7_CreationDate, std::optional< std::vector< ::Ifc4x3_rc1::IfcPerson > > v8_Creators, std::optional< std::string > v9_Purpose, std::optional< std::string > v10_Duration, std::optional< std::string > v11_TotalFloat, std::string v12_StartTime, std::optional< std::string > v13_FinishTime, std::optional< ::Ifc4x3_rc1::IfcWorkPlanTypeEnum::Value > v14_PredefinedType) : IfcWorkControl(const std::weak_ptr&(in_memory_attribute_storage(14))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); }set_attribute_value(6, (v7_CreationDate)); if (v8_Creators) {set_attribute_value(7, (*v8_Creators)->generalize()); } if (v9_Purpose) {set_attribute_value(8, (*v9_Purpose)); } if (v10_Duration) {set_attribute_value(9, (*v10_Duration)); } if (v11_TotalFloat) {set_attribute_value(10, (*v11_TotalFloat)); }set_attribute_value(11, (v12_StartTime)); if (v13_FinishTime) {set_attribute_value(12, (*v13_FinishTime)); } if (v14_PredefinedType) {set_attribute_value(13, (EnumerationReference(&::Ifc4x3_rc1::IfcWorkPlanTypeEnum::Class(),(size_t)*v14_PredefinedType))); }; populate_derived(); } // Function implementations for IfcWorkSchedule std::optional< ::Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Value > Ifc4x3_rc1::IfcWorkSchedule::PredefinedType() const { if(get_attribute_value(13).isNull()) { return std::nullopt; } return ::Ifc4x3_rc1::IfcWorkScheduleTypeEnum::FromString(get_attribute_value(13)); } void Ifc4x3_rc1::IfcWorkSchedule::setPredefinedType(const std::optional< ::Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Value >& v) { if (v) {set_attribute_value(13, EnumerationReference(&::Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Class(), (size_t) *v));} else {unset_attribute_value(13);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWorkSchedule::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1312]); } const IfcParse::entity& Ifc4x3_rc1::IfcWorkSchedule::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1312]); } // Ifc4x3_rc1::IfcWorkSchedule::IfcWorkSchedule(const std::weak_ptr& e) : IfcWorkControl(e) { } // Ifc4x3_rc1::IfcWorkSchedule::IfcWorkSchedule(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_Identification, std::string v7_CreationDate, std::optional< std::vector< ::Ifc4x3_rc1::IfcPerson > > v8_Creators, std::optional< std::string > v9_Purpose, std::optional< std::string > v10_Duration, std::optional< std::string > v11_TotalFloat, std::string v12_StartTime, std::optional< std::string > v13_FinishTime, std::optional< ::Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Value > v14_PredefinedType) : IfcWorkControl(const std::weak_ptr&(in_memory_attribute_storage(14))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_Identification) {set_attribute_value(5, (*v6_Identification)); }set_attribute_value(6, (v7_CreationDate)); if (v8_Creators) {set_attribute_value(7, (*v8_Creators)->generalize()); } if (v9_Purpose) {set_attribute_value(8, (*v9_Purpose)); } if (v10_Duration) {set_attribute_value(9, (*v10_Duration)); } if (v11_TotalFloat) {set_attribute_value(10, (*v11_TotalFloat)); }set_attribute_value(11, (v12_StartTime)); if (v13_FinishTime) {set_attribute_value(12, (*v13_FinishTime)); } if (v14_PredefinedType) {set_attribute_value(13, (EnumerationReference(&::Ifc4x3_rc1::IfcWorkScheduleTypeEnum::Class(),(size_t)*v14_PredefinedType))); }; populate_derived(); } // Function implementations for IfcWorkTime ::Ifc4x3_rc1::IfcRecurrencePattern Ifc4x3_rc1::IfcWorkTime::RecurrencePattern() const { if(get_attribute_value(3).isNull()) { return ::Ifc4x3_rc1::IfcRecurrencePattern{}; } return ((express::Base)(get_attribute_value(3))).as<::Ifc4x3_rc1::IfcRecurrencePattern>(); } void Ifc4x3_rc1::IfcWorkTime::setRecurrencePattern(const ::Ifc4x3_rc1::IfcRecurrencePattern& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } std::optional< std::string > Ifc4x3_rc1::IfcWorkTime::Start() const { if(get_attribute_value(4).isNull()) { return std::nullopt; } std::string v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcWorkTime::setStart(const std::optional< std::string >& v) { if (v) {set_attribute_value(4, *v);} else {unset_attribute_value(4);} } std::optional< std::string > Ifc4x3_rc1::IfcWorkTime::Finish() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcWorkTime::setFinish(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } // const IfcParse::entity& Ifc4x3_rc1::IfcWorkTime::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1314]); } const IfcParse::entity& Ifc4x3_rc1::IfcWorkTime::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1314]); } // Ifc4x3_rc1::IfcWorkTime::IfcWorkTime(const std::weak_ptr& e) : IfcSchedulingTime(e) { } // Ifc4x3_rc1::IfcWorkTime::IfcWorkTime(std::optional< std::string > v1_Name, std::optional< ::Ifc4x3_rc1::IfcDataOriginEnum::Value > v2_DataOrigin, std::optional< std::string > v3_UserDefinedDataOrigin, ::Ifc4x3_rc1::IfcRecurrencePattern v4_RecurrencePattern, std::optional< std::string > v5_Start, std::optional< std::string > v6_Finish) : IfcSchedulingTime(const std::weak_ptr&(in_memory_attribute_storage(6))) { if (v1_Name) {set_attribute_value(0, (*v1_Name)); } if (v2_DataOrigin) {set_attribute_value(1, (EnumerationReference(&::Ifc4x3_rc1::IfcDataOriginEnum::Class(),(size_t)*v2_DataOrigin))); } if (v3_UserDefinedDataOrigin) {set_attribute_value(2, (*v3_UserDefinedDataOrigin)); } if (v4_RecurrencePattern) {set_attribute_value(3, (*v4_RecurrencePattern)); } if (v5_Start) {set_attribute_value(4, (*v5_Start)); } if (v6_Finish) {set_attribute_value(5, (*v6_Finish)); }; populate_derived(); } // Function implementations for IfcZShapeProfileDef double Ifc4x3_rc1::IfcZShapeProfileDef::Depth() const { double v = get_attribute_value(3); return v; } void Ifc4x3_rc1::IfcZShapeProfileDef::setDepth(const double& v) { set_attribute_value(3, v);if constexpr (false)unset_attribute_value(3); } double Ifc4x3_rc1::IfcZShapeProfileDef::FlangeWidth() const { double v = get_attribute_value(4); return v; } void Ifc4x3_rc1::IfcZShapeProfileDef::setFlangeWidth(const double& v) { set_attribute_value(4, v);if constexpr (false)unset_attribute_value(4); } double Ifc4x3_rc1::IfcZShapeProfileDef::WebThickness() const { double v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcZShapeProfileDef::setWebThickness(const double& v) { set_attribute_value(5, v);if constexpr (false)unset_attribute_value(5); } double Ifc4x3_rc1::IfcZShapeProfileDef::FlangeThickness() const { double v = get_attribute_value(6); return v; } void Ifc4x3_rc1::IfcZShapeProfileDef::setFlangeThickness(const double& v) { set_attribute_value(6, v);if constexpr (false)unset_attribute_value(6); } std::optional< double > Ifc4x3_rc1::IfcZShapeProfileDef::FilletRadius() const { if(get_attribute_value(7).isNull()) { return std::nullopt; } double v = get_attribute_value(7); return v; } void Ifc4x3_rc1::IfcZShapeProfileDef::setFilletRadius(const std::optional< double >& v) { if (v) {set_attribute_value(7, *v);} else {unset_attribute_value(7);} } std::optional< double > Ifc4x3_rc1::IfcZShapeProfileDef::EdgeRadius() const { if(get_attribute_value(8).isNull()) { return std::nullopt; } double v = get_attribute_value(8); return v; } void Ifc4x3_rc1::IfcZShapeProfileDef::setEdgeRadius(const std::optional< double >& v) { if (v) {set_attribute_value(8, *v);} else {unset_attribute_value(8);} } // const IfcParse::entity& Ifc4x3_rc1::IfcZShapeProfileDef::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1316]); } const IfcParse::entity& Ifc4x3_rc1::IfcZShapeProfileDef::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1316]); } // Ifc4x3_rc1::IfcZShapeProfileDef::IfcZShapeProfileDef(const std::weak_ptr& e) : IfcParameterizedProfileDef(e) { } // Ifc4x3_rc1::IfcZShapeProfileDef::IfcZShapeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, std::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, std::optional< double > v8_FilletRadius, std::optional< double > v9_EdgeRadius) : IfcParameterizedProfileDef(const std::weak_ptr&(in_memory_attribute_storage(9))) { set_attribute_value(0, (EnumerationReference(&::Ifc4x3_rc1::IfcProfileTypeEnum::Class(),(size_t)v1_ProfileType))); if (v2_ProfileName) {set_attribute_value(1, (*v2_ProfileName)); } if (v3_Position) {set_attribute_value(2, (*v3_Position)); }set_attribute_value(3, (v4_Depth));set_attribute_value(4, (v5_FlangeWidth));set_attribute_value(5, (v6_WebThickness));set_attribute_value(6, (v7_FlangeThickness)); if (v8_FilletRadius) {set_attribute_value(7, (*v8_FilletRadius)); } if (v9_EdgeRadius) {set_attribute_value(8, (*v9_EdgeRadius)); }; populate_derived(); } // Function implementations for IfcZone std::optional< std::string > Ifc4x3_rc1::IfcZone::LongName() const { if(get_attribute_value(5).isNull()) { return std::nullopt; } std::string v = get_attribute_value(5); return v; } void Ifc4x3_rc1::IfcZone::setLongName(const std::optional< std::string >& v) { if (v) {set_attribute_value(5, *v);} else {unset_attribute_value(5);} } // const IfcParse::entity& Ifc4x3_rc1::IfcZone::declaration() const { return *((IfcParse::entity*)IFC4X3_RC1_types[1315]); } const IfcParse::entity& Ifc4x3_rc1::IfcZone::Class() { return *((IfcParse::entity*)IFC4X3_RC1_types[1315]); } // Ifc4x3_rc1::IfcZone::IfcZone(const std::weak_ptr& e) : IfcSystem(e) { } // Ifc4x3_rc1::IfcZone::IfcZone(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory v2_OwnerHistory, std::optional< std::string > v3_Name, std::optional< std::string > v4_Description, std::optional< std::string > v5_ObjectType, std::optional< std::string > v6_LongName) : IfcSystem(const std::weak_ptr&(in_memory_attribute_storage(6))) { set_attribute_value(0, (v1_GlobalId)); if (v2_OwnerHistory) {set_attribute_value(1, (*v2_OwnerHistory)); } if (v3_Name) {set_attribute_value(2, (*v3_Name)); } if (v4_Description) {set_attribute_value(3, (*v4_Description)); } if (v5_ObjectType) {set_attribute_value(4, (*v5_ObjectType)); } if (v6_LongName) {set_attribute_value(5, (*v6_LongName)); }; populate_derived(); }