diff --git a/.gitmodules b/.gitmodules index 5bb14b5c42..9833ed4832 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,6 @@ path = test/input url = https://github.com/IfcOpenShell/files ignore = dirty +[submodule "src/ifcopenshell-python/ifcopenshell/mvd"] + path = src/ifcopenshell-python/ifcopenshell/mvd + url = https://github.com/opensourceBIM/python-mvdxml/ diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 8f6dd2516d..69788ee5a4 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -23,6 +23,14 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # not necessary, but encouraged project (IfcOpenShell) +foreach(max_year RANGE 2014 2030) +set(max_sdk "$ENV{ADSK_3DSMAX_SDK_${max_year}}") +if (NOT "${max_sdk}" STREQUAL "") +MESSAGE(STATUS "Autodesk 3ds Max SDK found at ${max_sdk}") +set(HAS_MAX TRUE) +endif() +endforeach() + OPTION(UNICODE_SUPPORT "Build IfcOpenShell with Unicode support (requires ICU)." ON) OPTION(COLLADA_SUPPORT "Build IfcConvert with COLLADA support (requires OpenCOLLADA)." ON) OPTION(IFCXML_SUPPORT "Build IfcParse with ifcXML support (requires libxml2)." ON) @@ -35,8 +43,11 @@ OPTION(BUILD_GEOMSERVER "Build IfcGeomServer executable." ON) OPTION(BUILD_CONVERT "Build IfcConvert executable." ON) OPTION(USE_VLD "Use Visual Leak Detector for debugging memory leaks, MSVC-only." OFF) OPTION(USE_MMAP "Adds a command line options to parse IFC files from memory mapped files using Boost.Iostreams" OFF) -OPTION(BUILD_IFCMAX "Build IfcMax, a 3ds Max plug-in, Windows-only." OFF) +if (${HAS_MAX}) +OPTION(BUILD_IFCMAX "Build IfcMax, a 3ds Max plug-in, Windows-only." ON) +endif() OPTION(BUILD_SHARED_LIBS "Build IfcParse and IfcGeom as shared libs (SO/DLL)." OFF) + # TODO QtViewer is deprecated ATM as it uses the 0.4 API # OPTION(BUILD_QTVIEWER "Build IfcOpenShell Qt GUI Viewer (requires Qt 4 framework)." OFF) @@ -106,10 +117,6 @@ UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(GMP_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR) -IF(WIN32) - UNIFY_ENVVARS_AND_CACHE(THREEDS_MAX_SDK_HOME) -ENDIF() - # Set INSTALL_RPATH for target MACRO(SET_INSTALL_RPATHS _target _paths) diff --git a/nix/build-all.py b/nix/build-all.py index ff3373bae2..34b0c819e9 100644 --- a/nix/build-all.py +++ b/nix/build-all.py @@ -63,7 +63,7 @@ PROJECT_NAME="IfcOpenShell" OCE_VERSION="0.18" # OCCT_VERSION="7.1.0" # OCCT_HASH="89aebde" -PYTHON_VERSIONS=["2.7.12", "3.2.6", "3.3.6", "3.4.6", "3.5.3", "3.6.2"] +PYTHON_VERSIONS=["2.7.16", "3.2.6", "3.3.6", "3.4.6", "3.5.3", "3.6.2"] # OCCT_VERSION="7.2.0" # OCCT_HASH="88af392" OCCT_VERSION="7.3.0" diff --git a/src/ifcblender/io_import_scene_ifc/__init__.py b/src/ifcblender/io_import_scene_ifc/__init__.py index dee3adb560..8c6ed16d23 100644 --- a/src/ifcblender/io_import_scene_ifc/__init__.py +++ b/src/ifcblender/io_import_scene_ifc/__init__.py @@ -27,42 +27,46 @@ bl_info = { "name": "IfcBlender", - "description": "Import files in the "\ + "description": "Import files in the " "Industry Foundation Classes (.ifc) file format", "author": "Thomas Krijnen, IfcOpenShell", - "blender": (2, 73, 0), + "blender": (2, 80, 0), "location": "File > Import", - "tracker_url": "https://sourceforge.net/p/ifcopenshell/"\ + "tracker_url": "https://sourceforge.net/p/ifcopenshell/" "_list/tickets?source=navbar", "category": "Import-Export"} if "bpy" in locals(): - import imp + import importlib if "ifcopenshell" in locals(): - imp.reload(ifcopenshell) + importlib.reload(ifcopenshell) import bpy import mathutils from bpy.props import StringProperty, IntProperty, BoolProperty from bpy_extras.io_utils import ImportHelper -major,minor = bpy.app.version[0:2] +major, minor = bpy.app.version[0:2] transpose_matrices = minor >= 62 -bpy.types.Object.ifc_id = IntProperty(name="IFC Entity ID", +bpy.types.Object.ifc_id = IntProperty( + name="IFC Entity ID", description="The STEP entity instance name") -bpy.types.Object.ifc_guid = StringProperty(name="IFC Entity GUID", +bpy.types.Object.ifc_guid = StringProperty( + name="IFC Entity GUID", description="The IFC Globally Unique Identifier") -bpy.types.Object.ifc_name = StringProperty(name="IFC Entity Name", +bpy.types.Object.ifc_name = StringProperty( + name="IFC Entity Name", description="The optional name attribute") -bpy.types.Object.ifc_type = StringProperty(name="IFC Entity Type", +bpy.types.Object.ifc_type = StringProperty( + name="IFC Entity Type", description="The STEP Datatype keyword") def import_ifc(filename, use_names, process_relations, blender_booleans): from . import ifcopenshell from .ifcopenshell import geom as ifcopenshell_geom - print("Reading %s..."%bpy.path.basename(filename)) + print(f"Reading {bpy.path.basename(filename)}...") settings = ifcopenshell_geom.settings() settings.set(settings.DISABLE_OPENING_SUBTRACTIONS, blender_booleans) iterator = ifcopenshell_geom.iterator(settings, filename) @@ -76,9 +80,14 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): openings = [] old_progress = -1 print("Creating geometry...") + collection = bpy.data.collections.new(f"{bpy.path.basename(filename)}") + bpy.context.scene.collection.children.link(collection) + if process_relations: + rel_collection = bpy.data.collections.new("Relations") + collection.children.link(rel_collection) while True: ob = iterator.get() - + f = ob.geometry.faces v = ob.geometry.verts mats = ob.geometry.materials @@ -86,54 +95,75 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): m = ob.transformation.matrix.data t = ob.type[0:21] nm = ob.name if len(ob.name) and use_names else ob.guid - - verts = [[v[i], v[i + 1], v[i + 2]] \ - for i in range(0, len(v), 3)] - faces = [[f[i], f[i + 1], f[i + 2]] \ - for i in range(0, len(f), 3)] - + # MESH CREATION # Depending on version, geometry.id will be either int or str - me = bpy.data.meshes.new('mesh-%r' % ob.geometry.id) - me.from_pydata(verts, [], faces) - me.validate() - - def add_material(mname, props): - if mname in bpy.data.materials: - mat = bpy.data.materials[mname] - mat.use_fake_user = True - else: - mat = bpy.data.materials.new(mname) - for k,v in props.items(): - setattr(mat, k, v) - me.materials.append(mat) - - needs_default = -1 in matids - if needs_default: add_material(t, {}) - - for mat in mats: - props = {} - if mat.has_diffuse: props['diffuse_color'] = mat.diffuse - if mat.has_specular: props['specular_color'] = mat.specular - if mat.has_transparency and mat.transparency > 0: - props['alpha'] = 1.0 - mat.transparency - props['use_transparency'] = True - if mat.has_specularity: props['specular_hardness'] = mat.specularity - add_material(mat.name, props) + mesh_name = 'mesh-%r' % ob.geometry.id + if mesh_name in bpy.data.meshes: + me = bpy.data.meshes[mesh_name] + else: + verts = [[v[i], v[i + 1], v[i + 2]] + for i in range(0, len(v), 3)] + faces = [[f[i], f[i + 1], f[i + 2]] + for i in range(0, len(f), 3)] + me = bpy.data.meshes.new(mesh_name) + me.from_pydata(verts, [], faces) + me.validate() + # MATERIAL CREATION + def add_material(mname, props): + if mname in bpy.data.materials: + mat = bpy.data.materials[mname] + mat.use_fake_user = True + else: + mat = bpy.data.materials.new(mname) + for k, v in props.items(): + if k == 'transparency': + mat.blend_method = 'HASHED' + mat.use_screen_refraction = True + mat.refraction_depth = 0.1 + mat.use_nodes = True + mat.node_tree.nodes["Principled BSDF"].inputs[15].default_value = v + else: + setattr(mat, k, v) + me.materials.append(mat) + + needs_default = -1 in matids + if needs_default: + add_material(t, {}) + + for mat in mats: + props = {} + if mat.has_diffuse: + props['diffuse_color'] = mat.diffuse + if mat.has_specular: + props['specular_color'] = mat.specular + if mat.has_transparency and mat.transparency > 0: + props['transparency'] = mat.transparency + if mat.has_specularity: + props['specular_intensity'] = mat.specularity + add_material(mat.name, props) + + faces = me.polygons if hasattr(me, 'polygons') else me.faces + if len(faces) == len(matids): + for face, matid in zip(faces, matids): + face.material_index = matid + (1 if needs_default else 0) + + # OBJECT CREATION bob = bpy.data.objects.new(nm, me) mat = mathutils.Matrix(([m[0], m[1], m[2], 0], - [m[3], m[4], m[5], 0], - [m[6], m[7], m[8], 0], - [m[9], m[10], m[11], 1])) - if transpose_matrices: mat.transpose() - + [m[3], m[4], m[5], 0], + [m[6], m[7], m[8], 0], + [m[9], m[10], m[11], 1])) + if transpose_matrices: + mat.transpose() + if process_relations: id_to_matrix[ob.id] = mat else: bob.matrix_world = mat - bpy.context.scene.objects.link(bob) + collection.objects.link(bob) - bpy.context.scene.objects.active = bob + bpy.context.view_layer.objects.active = bob bpy.ops.object.mode_set(mode='EDIT') bpy.ops.mesh.normals_make_consistent() bpy.ops.object.mode_set(mode='OBJECT') @@ -143,23 +173,19 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): if ob.type == 'IfcSpace' or ob.type == 'IfcOpeningElement': if not (ob.type == 'IfcOpeningElement' and blender_booleans): - bob.hide = bob.hide_render = True - bob.draw_type = 'WIRE' - - if ob.id not in id_to_object: id_to_object[ob.id] = [] + bob.hide_viewport = bob.hide_render = True + bob.display_type = 'WIRE' + + if ob.id not in id_to_object: + id_to_object[ob.id] = [] id_to_object[ob.id].append(bob) if ob.parent_id > 0: id_to_parent[ob.id] = ob.parent_id - + if blender_booleans and ob.type == 'IfcOpeningElement': openings.append(ob.id) - - faces = me.polygons if hasattr(me, 'polygons') else me.faces - if len(faces) == len(matids): - for face, matid in zip(faces, matids): - face.material_index = matid + (1 if needs_default else 0) - + progress = iterator.progress() // 2 if progress > old_progress: print("\r[" + "#" * progress + " " * (50 - progress) + "]", end="") @@ -170,13 +196,13 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): print("\rDone creating geometry" + " " * 30) id_to_parent_temp = dict(id_to_parent) - + if process_relations: print("Processing relations...") while len(id_to_parent_temp) and process_relations: id, parent_id = id_to_parent_temp.popitem() - + if parent_id in id_to_object: bob = id_to_object[parent_id][0] else: @@ -188,16 +214,17 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): nm = parent_ob.name if len(parent_ob.name) and use_names \ else parent_ob.guid bob = bpy.data.objects.new(nm, None) - + mat = mathutils.Matrix(( [m[0], m[1], m[2], 0], [m[3], m[4], m[5], 0], [m[6], m[7], m[8], 0], [m[9], m[10], m[11], 1])) - if transpose_matrices: mat.transpose() + if transpose_matrices: + mat.transpose() id_to_matrix[parent_ob.id] = mat - - bpy.context.scene.objects.link(bob) + + rel_collection.objects.link(bob) bob.ifc_id = parent_ob.id bob.ifc_name, bob.ifc_type, bob.ifc_guid = \ @@ -220,13 +247,13 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): parent_matrix = id_to_matrix.get(parent_id, None) for ob in id_to_object[id]: if parent_matrix: - ob.matrix_local = parent_matrix.inverted() * matrix + ob.matrix_local = parent_matrix.inverted() @ matrix else: ob.matrix_world = matrix - + if process_relations: print("Done processing relations") - + for opening_id in openings: parent_id = id_to_parent[opening_id] if parent_id in id_to_object: @@ -235,8 +262,8 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): mod = parent_ob.modifiers.new("opening", "BOOLEAN") mod.operation = "DIFFERENCE" mod.object = opening_ob - - txt = bpy.data.texts.new("%s.log"%bpy.path.basename(filename)) + + txt = bpy.data.texts.new(f"{bpy.path.basename(filename)}.log") txt.from_string(iterator.getLog()) return True @@ -247,42 +274,51 @@ class ImportIFC(bpy.types.Operator, ImportHelper): bl_label = "Import .ifc file" filename_ext = ".ifc" - filter_glob = StringProperty(default="*.ifc", options={'HIDDEN'}) + filter_glob: StringProperty(default="*.ifc", options={'HIDDEN'}) - use_names = BoolProperty(name="Use entity names", - description="Use entity names rather than GlobalIds for objects", - default=True) - process_relations = BoolProperty(name="Process relations", - description="Convert containment and aggregation" \ - " relations to parenting" \ - " (warning: may be slow on large files)", - default=False) - blender_booleans = BoolProperty(name="Use Blender booleans", - description="Use Blender boolean modifiers for opening" \ - " elements", - default=False) + use_names: BoolProperty(name="Use entity names", + description="Use entity names rather than " + "GlobalIds for objects", + default=True) + process_relations: BoolProperty(name="Process relations", + description="Convert containment and " + "aggregation relations to parenting" + " (warning: may be slow on large files)", + default=False) + blender_booleans: BoolProperty(name="Use Blender booleans", + description="Use Blender boolean modifiers " + "for opening elements", + default=False) def execute(self, context): - if not import_ifc(self.filepath, self.use_names, self.process_relations, self.blender_booleans): + if not import_ifc(self.filepath, self.use_names, + self.process_relations, self.blender_booleans): self.report({'ERROR'}, - 'Unable to parse .ifc file or no geometrical entities found' - ) + 'Unable to parse .ifc file or no geometrical entities found' + ) return {'FINISHED'} def menu_func_import(self, context): self.layout.operator(ImportIFC.bl_idname, - text="Industry Foundation Classes (.ifc)") + text="Industry Foundation Classes (.ifc)") + + +classes = ( + ImportIFC, +) def register(): - bpy.utils.register_module(__name__) - bpy.types.INFO_MT_file_import.append(menu_func_import) + for cls in classes: + bpy.utils.register_class(cls) + bpy.types.TOPBAR_MT_file_import.append(menu_func_import) def unregister(): - bpy.utils.unregister_module(__name__) - bpy.types.INFO_MT_file_import.remove(menu_func_import) + for cls in reversed(classes): + bpy.utils.unregister_class(cls) + bpy.types.TOPBAR_MT_file_import.remove(menu_func_import) if __name__ == "__main__": diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index 3d426b9d67..e9571dcfe1 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -37,6 +37,8 @@ #include "../ifcgeom/schema_agnostic/IfcGeomIterator.h" #include "../ifcgeom/schema_agnostic/IfcGeomRenderStyles.h" +#include "../ifcparse/utils.h" + #include #if OCC_VERSION_HEX < 0x60900 @@ -55,6 +57,23 @@ #include #endif +#ifdef _MSC_VER +#include +#include +// C++11 header: +#include +#endif + +#if defined(_MSC_VER) && defined(_UNICODE) +typedef std::wstring path_t; +static std::wostream& cout_ = std::wcout; +static std::wostream& cerr_ = std::wcerr; +#else +typedef std::string path_t; +static std::ostream& cout_ = std::cout; +static std::ostream& cerr_ = std::cerr; +#endif + const std::string DEFAULT_EXTENSION = "obj"; const std::string TEMP_FILE_EXTENSION = ".tmp"; @@ -62,12 +81,12 @@ namespace po = boost::program_options; void print_version() { - std::cout << "IfcOpenShell IfcConvert " << IFCOPENSHELL_VERSION << " (OCC " << OCC_VERSION_STRING_EXT << ")\n"; + cout_ << "IfcOpenShell IfcConvert " << IFCOPENSHELL_VERSION << " (OCC " << OCC_VERSION_STRING_EXT << ")\n"; } void print_usage(bool suggest_help = true) { - std::cout << "Usage: IfcConvert [options] []\n" + cout_ << "Usage: IfcConvert [options] []\n" << "\n" << "Converts (the geometry in) an IFC file into one of the following formats:\n" << " .obj WaveFront OBJ (a .mtl file is also created)\n" @@ -80,48 +99,46 @@ void print_usage(bool suggest_help = true) << " .svg SVG Scalable Vector Graphics (2D floor plan)\n" << " .ifc IFC-SPF Industry Foundation Classes\n" << "\n" - << "If no output filename given, ." + DEFAULT_EXTENSION + " will be used as the output file.\n"; + << "If no output filename given, ." << IfcUtil::path::from_utf8(DEFAULT_EXTENSION) << " will be used as the output file.\n"; if (suggest_help) { - std::cout << "\nRun 'IfcConvert --help' for more information."; + cout_ << "\nRun 'IfcConvert --help' for more information."; } - std::cout << std::endl; + cout_ << std::endl; } /// @todo Add help for single option void print_options(const po::options_description& options) { - std::cout << "\n" << options; - std::cout << std::endl; +#if defined(_MSC_VER) && defined(_UNICODE) + // See issue https://svn.boost.org/trac10/ticket/10952 + std::ostringstream temp; + temp << options; + cout_ << "\n" << temp.str().c_str(); +#else + cout_ << "\n" << options; +#endif + cout_ << std::endl; } -std::string change_extension(const std::string& fn, const std::string& ext) { - std::string::size_type dot = fn.find_last_of('.'); - if (dot != std::string::npos) { - return fn.substr(0,dot+1) + ext; +template +T change_extension(const T& fn, const T& ext) { + typename T::size_type dot = fn.find_last_of('.'); + if (dot != T::npos) { + return fn.substr(0, dot) + ext; } else { - return fn + "." + ext; + return fn + ext; } } -bool file_exists(const std::string& filename) -{ - /// @todo Windows Unicode support - std::ifstream file(filename.c_str()); +bool file_exists(const std::string& filename) { + std::ifstream file(IfcUtil::path::from_utf8(filename).c_str()); return file.good(); } -bool rename_file(const std::string& old_filename, const std::string& new_filename) -{ - // Whether or not rename() replaces an existing file is implementation-specific, - // so remove() possible existing file always. - /// @todo Windows Unicode support - std::remove(new_filename.c_str()); - return std::rename(old_filename.c_str(), new_filename.c_str()) == 0; -} - -static std::stringstream log_stream; +static std::basic_stringstream log_stream; void write_log(bool); void fix_quantities(IfcParse::IfcFile&, bool, bool, bool); +std::string format_duration(time_t start, time_t end); /// @todo make the filters non-global IfcGeom::entity_filter entity_filter; // Entity filter is used always by default. @@ -152,9 +169,28 @@ std::vector setup_filters(const std::vector&, co bool init_input_file(const std::string& filename, IfcParse::IfcFile*& ifc_file, bool no_progress, bool mmap); -int main(int argc, char** argv) -{ +#if defined(_MSC_VER) && defined(_UNICODE) +int wmain(int argc, wchar_t** argv) { + typedef po::wcommand_line_parser command_line_parser; + typedef wchar_t char_t; + + _setmode(_fileno(stdout), _O_U16TEXT); + _setmode(_fileno(stderr), _O_U16TEXT); +#else +int main(int argc, char** argv) { + typedef po::command_line_parser command_line_parser; + typedef char char_t; +#endif + + double deflection_tolerance; + inclusion_filter include_filter; + inclusion_traverse_filter include_traverse_filter; + exclusion_filter exclude_filter; + exclusion_traverse_filter exclude_traverse_filter; + path_t filter_filename; + path_t default_material_filename; std::string log_format; + po::options_description generic_options("Command line options"); generic_options.add_options() ("help,h", "display usage information") @@ -171,8 +207,8 @@ int main(int argc, char** argv) #ifdef USE_MMAP ("mmap", "use memory-mapped file for input") #endif - ("input-file", po::value(), "input IFC file") - ("output-file", po::value(), "output geometry file"); + ("input-file", new po::typed_value(0), "input IFC file") + ("output-file", new po::typed_value(0), "output geometry file"); double deflection_tolerance; @@ -252,7 +288,7 @@ int main(int argc, char** argv) ("exclude+", po::value(&exclude_traverse_filter)->multitoken(), "Same as --exclude but applies filtering also to the decomposition and/or containment " "of the filtered entity. See --include+ for more details.") - ("filter-file", po::value(&filter_filename), + ("filter-file", new po::typed_value(&filter_filename), "Specifies a filter file that describes the used filtering criteria. Supported formats " "are '--include=arg GlobalId ...' and 'include arg GlobalId ...'. Spaces and tabs can be used as delimiters." "Multiple filters of same type with different values can be inserted on their own lines. " @@ -266,7 +302,7 @@ int main(int argc, char** argv) ("generate-uvs", "Generates UVs (texture coordinates) by using simple box projection. Requires normals. " "Not guaranteed to work properly if used with --weld-vertices.") - ("default-material-file", po::value(&default_material_filename), + ("default-material-file", new po::typed_value(&default_material_filename), "Specifies a material file that describes the material object types will have" "if an object does not have any specified material in the IFC file.") ("validate", "Checks whether geometrical output conforms to the included explicit quantities."); @@ -329,21 +365,21 @@ int main(int argc, char** argv) po::variables_map vmap; try { - po::store(po::command_line_parser(argc, argv). + po::store(command_line_parser(argc, argv). options(cmdline_options).positional(positional_options).run(), vmap); } catch (const po::unknown_option& e) { - std::cerr << "[Error] Unknown option '" << e.get_option_name() << "'\n\n"; + cerr_ << "[Error] Unknown option '" << e.get_option_name().c_str() << "'\n\n"; print_usage(); return EXIT_FAILURE; } catch (const po::error_with_option_name& e) { - std::cerr << "[Error] Invalid usage of '" << e.get_option_name() << "': " << e.what() << "\n\n"; + cerr_ << "[Error] Invalid usage of '" << e.get_option_name().c_str() << "': " << e.what() << "\n\n"; return EXIT_FAILURE; } catch (const std::exception& e) { - std::cerr << "[Error] " << e.what() << "\n\n"; + cerr_ << "[Error] " << e.what() << "\n\n"; print_usage(); return EXIT_FAILURE; } catch (...) { - std::cerr << "[Error] Unknown error parsing command line options\n\n"; + cerr_ << "[Error] Unknown error parsing command line options\n\n"; print_usage(); return EXIT_FAILURE; } @@ -378,11 +414,11 @@ int main(int argc, char** argv) const bool generate_uvs = vmap.count("generate-uvs") != 0; const bool validate = vmap.count("validate") != 0; - if (!quiet || vmap.count("version")) { + if (!quiet || vmap.count("version")) { print_version(); } - if (vmap.count("version")) { + if (vmap.count("version")) { return EXIT_SUCCESS; } else if (vmap.count("help")) { print_usage(false); @@ -393,70 +429,7 @@ int main(int argc, char** argv) print_usage(); return EXIT_FAILURE; } - -#ifdef HAVE_ICU - if (!unicode_mode.empty()) { - if (unicode_mode == "utf8") { - IfcParse::IfcCharacterDecoder::mode = IfcParse::IfcCharacterDecoder::UTF8; - } else if (unicode_mode == "escape") { - IfcParse::IfcCharacterDecoder::mode = IfcParse::IfcCharacterDecoder::JSON; - } else { - std::cerr << "[Error] Invalid value for --unicode" << std::endl; - print_options(serializer_options); - return 1; - } - } -#endif - - boost::optional bounding_width; - boost::optional bounding_height; - if (vmap.count("bounds") == 1) { - int w, h; - if (sscanf(bounds.c_str(), "%ux%u", &w, &h) == 2 && w > 0 && h > 0) { - bounding_width = w; - bounding_height = h; - } else { - std::cerr << "[Error] Invalid use of --bounds" << std::endl; - print_options(serializer_options); - return EXIT_FAILURE; - } - } - - const std::string input_filename = vmap["input-file"].as(); - if (!file_exists(input_filename)) { - std::cerr << "[Error] Input file '" << input_filename << "' does not exist" << std::endl; - return EXIT_FAILURE; - } - - // If no output filename is specified a Wavefront OBJ file will be output - // to maintain backwards compatibility with the obsolete IfcObj executable. - const std::string output_filename = vmap.count("output-file") == 1 - ? vmap["output-file"].as() - : change_extension(input_filename, DEFAULT_EXTENSION); - - if (output_filename.size() < 5) { - std::cerr << "[Error] Invalid or unsupported output file '" << output_filename << "' given" << std::endl; - print_usage(); - return EXIT_FAILURE; - } - - if (file_exists(output_filename) && !vmap.count("yes")) { - std::string answer; - std::cout << "A file '" << output_filename << "' already exists. Overwrite the existing file?" << std::endl; - std::cin >> answer; - if (!boost::iequals(answer, "yes") && !boost::iequals(answer, "y")) { - return EXIT_SUCCESS; - } - } - - std::string output_temp_filename = output_filename + TEMP_FILE_EXTENSION; - - std::string output_extension = output_filename.substr(output_filename.size()-4); - boost::to_lower(output_extension); - - Logger::SetOutput(&std::cout, &log_stream); - Logger::Verbosity(verbose ? Logger::LOG_NOTICE : Logger::LOG_ERROR); - + if (vmap.count("log-format") == 1) { boost::to_lower(log_format); if (log_format == "plain") { @@ -469,20 +442,116 @@ int main(int argc, char** argv) return EXIT_FAILURE; } } + + if (!filter_filename.empty()) { + size_t num_filters = read_filters_from_file(IfcUtil::path::to_utf8(filter_filename), include_filter, include_traverse_filter, exclude_filter, exclude_traverse_filter); + if (num_filters) { + Logger::Notice(boost::lexical_cast(num_filters) + " filters read from specifified file."); + } else { + std::cerr << "[Error] No filters read from specifified file.\n"; + return EXIT_FAILURE; + } + } + +#ifdef HAVE_ICU + if (!unicode_mode.empty()) { + if (unicode_mode == "utf8") { + IfcParse::IfcCharacterDecoder::mode = IfcParse::IfcCharacterDecoder::UTF8; + } else if (unicode_mode == "escape") { + IfcParse::IfcCharacterDecoder::mode = IfcParse::IfcCharacterDecoder::JSON; + } else { + cerr_ << "[Error] Invalid value for --unicode" << std::endl; + print_options(serializer_options); + return 1; + } + } +#endif + + if (!default_material_filename.empty()) { + try { + IfcGeom::set_default_style_file(IfcUtil::path::to_utf8(default_material_filename)); + } catch (const std::exception& e) { + std::cerr << "[Error] Could not read default material file:" << std::endl; + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; + } + } + + boost::optional bounding_width; + boost::optional bounding_height; + if (vmap.count("bounds") == 1) { + int w, h; + if (sscanf(bounds.c_str(), "%ux%u", &w, &h) == 2 && w > 0 && h > 0) { + bounding_width = w; + bounding_height = h; + } else { + cerr_ << "[Error] Invalid use of --bounds" << std::endl; + print_options(serializer_options); + return EXIT_FAILURE; + } + } + + const path_t input_filename = vmap["input-file"].as(); + if (!file_exists(IfcUtil::path::to_utf8(input_filename))) { + cerr_ << "[Error] Input file '" << input_filename << "' does not exist" << std::endl; + return EXIT_FAILURE; + } + + // If no output filename is specified a Wavefront OBJ file will be output + // to maintain backwards compatibility with the obsolete IfcObj executable. + const path_t output_filename = vmap.count("output-file") == 1 + ? vmap["output-file"].as() + : change_extension(input_filename, IfcUtil::path::from_utf8(DEFAULT_EXTENSION)); + + if (output_filename.size() < 5) { + cerr_ << "[Error] Invalid or unsupported output file '" << output_filename << "' given" << std::endl; + print_usage(); + return EXIT_FAILURE; + } + + if (file_exists(IfcUtil::path::to_utf8(output_filename)) && !vmap.count("yes")) { + std::string answer; + cout_ << "A file '" << output_filename << "' already exists. Overwrite the existing file?" << std::endl; + std::cin >> answer; + if (!boost::iequals(answer, "yes") && !boost::iequals(answer, "y")) { + return EXIT_SUCCESS; + } + } + + Logger::SetOutput(&cout_, &log_stream); + Logger::Verbosity(verbose ? Logger::LOG_NOTICE : Logger::LOG_ERROR); + + path_t output_temp_filename = output_filename + IfcUtil::path::from_utf8(TEMP_FILE_EXTENSION); + + path_t output_extension = output_filename.substr(output_filename.size()-4); + boost::to_lower(output_extension); IfcParse::IfcFile* ifc_file = 0; + + const path_t OBJ = IfcUtil::path::from_utf8(".obj"), + MTL = IfcUtil::path::from_utf8(".mtl"), + DAE = IfcUtil::path::from_utf8(".dae"), + STP = IfcUtil::path::from_utf8(".stp"), + IGS = IfcUtil::path::from_utf8(".igs"), + SVG = IfcUtil::path::from_utf8(".svg"), + XML = IfcUtil::path::from_utf8(".xml"), + IFC = IfcUtil::path::from_utf8(".ifc"); // @todo clean up serializer selection // @todo detect program options that conflict with the chosen serializer - if (output_extension == ".xml") { + if (output_extension == XML) { int exit_code = EXIT_FAILURE; try { - if (init_input_file(input_filename, ifc_file, no_progress || quiet, mmap)) { - XmlSerializer s(ifc_file, output_temp_filename); + if (init_input_file(IfcUtil::path::to_utf8(input_filename), ifc_file, no_progress || quiet, mmap)) { + time_t start, end; + time(&start); + XmlSerializer s(ifc_file, IfcUtil::path::to_utf8(output_temp_filename)); Logger::Status("Writing XML output..."); s.finalize(); - Logger::Status("Done!"); - rename_file(output_temp_filename, output_filename); + time(&end); + Logger::Status("Done! Conversion took " + format_duration(start, end)); + + IfcUtil::path::rename_file(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(output_filename)); exit_code = EXIT_SUCCESS; } } catch (const std::exception& e) { @@ -490,10 +559,12 @@ int main(int argc, char** argv) } write_log(!quiet); return exit_code; - } else if (output_extension == ".ifc") { + } else if (output_extension == IFC) { int exit_code = EXIT_FAILURE; try { - if (init_input_file(input_filename, ifc_file, no_progress || quiet, mmap)) { + if (init_input_file(IfcUtil::path::to_utf8(input_filename), ifc_file, no_progress || quiet, mmap)) { + time_t start, end; + time(&start); std::ofstream fs(output_filename.c_str()); if (fs.is_open()) { if (vmap.count("calculate-quantities")) { @@ -504,6 +575,8 @@ int main(int argc, char** argv) } else { Logger::Error("Unable to open output file for writing"); } + time(&end); + Logger::Status("Done! Writing IFC took " + format_duration(start, end)); } } catch (const std::exception& e) { Logger::Error(e); @@ -512,27 +585,6 @@ int main(int argc, char** argv) return exit_code; } - if (!filter_filename.empty()) { - size_t num_filters = read_filters_from_file(filter_filename, include_filter, include_traverse_filter, exclude_filter, exclude_traverse_filter); - if (num_filters) { - Logger::Notice(boost::lexical_cast(num_filters) + " filters read from '" + filter_filename + "'."); - } else { - std::cerr << "[Error] No filters read from '" + filter_filename + "'.\n"; - return EXIT_FAILURE; - } - } - - if (!default_material_filename.empty()) { - try { - IfcGeom::set_default_style_file(default_material_filename); - } catch (const std::exception& e) { - std::cerr << "[Error] Could not read default material file " << default_material_filename << ":" << std::endl; - std::cerr << e.what() << std::endl; - return EXIT_FAILURE; - } - } - - /// @todo Clean up this filter code further. std::vector used_filters; if (include_filter.type != geom_filter::UNUSED) { used_filters.push_back(include_filter); } @@ -540,16 +592,30 @@ int main(int argc, char** argv) if (exclude_filter.type != geom_filter::UNUSED) { used_filters.push_back(exclude_filter); } if (exclude_traverse_filter.type != geom_filter::UNUSED) { used_filters.push_back(exclude_traverse_filter); } - std::vector filter_funcs = setup_filters(used_filters, output_extension); + std::vector filter_funcs = setup_filters(used_filters, IfcUtil::path::to_utf8(output_extension)); if (filter_funcs.empty()) { - std::cerr << "[Error] Failed to set up geometry filters\n"; + cerr_ << "[Error] Failed to set up geometry filters\n"; return EXIT_FAILURE; } if (!entity_filter.entity_names.empty()) { entity_filter.update_description(); Logger::Notice(entity_filter.description); } if (!layer_filter.values.empty()) { layer_filter.update_description(); Logger::Notice(layer_filter.description); } if (!attribute_filter.attribute_name.empty()) { attribute_filter.update_description(); Logger::Notice(layer_filter.description); } - + +#ifdef _MSC_VER + if (output_extension == DAE || output_extension == STP || output_extension == IGS) { + // These serializers do not support opening unicode paths on Windows. Therefore + // a random temp file is generated using only ASCII characters instead. + std::random_device rng; + std::uniform_int_distribution index_dist(L'A', L'Z'); + output_temp_filename = L".ifcopenshell."; + for (int i = 0; i < 8; ++i) { + output_temp_filename.push_back(static_cast(index_dist(rng))); + } + output_temp_filename += L".tmp"; + } +#endif + SerializerSettings settings; /// @todo Make APPLY_DEFAULT_MATERIALS configurable? Quickly tested setting this to false and using obj exporter caused the program to crash and burn. settings.set(IfcGeom::IteratorSettings::APPLY_DEFAULT_MATERIALS, true); @@ -579,29 +645,29 @@ int main(int argc, char** argv) settings.precision = precision; boost::shared_ptr serializer; /**< @todo use std::unique_ptr when possible */ - if (output_extension == ".obj") { + if (output_extension == OBJ) { // Do not use temp file for MTL as it's such a small file. - const std::string mtl_filename = change_extension(output_filename, "mtl"); + const path_t mtl_filename = change_extension(output_filename, MTL); if (!use_world_coords) { Logger::Notice("Using world coords when writing WaveFront OBJ files"); settings.set(IfcGeom::IteratorSettings::USE_WORLD_COORDS, true); } - serializer = boost::make_shared(output_temp_filename, mtl_filename, settings); + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(mtl_filename), settings); #ifdef WITH_OPENCOLLADA - } else if (output_extension == ".dae") { - serializer = boost::make_shared(output_temp_filename, settings); + } else if (output_extension == DAE) { + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); #endif - } else if (output_extension == ".stp") { - serializer = boost::make_shared(output_temp_filename, settings); - } else if (output_extension == ".igs") { + } else if (output_extension == STP) { + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); + } else if (output_extension == IGS) { #if OCC_VERSION_HEX < 0x60900 // According to https://tracker.dev.opencascade.org/view.php?id=25689 something has been fixed in 6.9.0 IGESControl_Controller::Init(); // work around Open Cascade bug #endif - serializer = boost::make_shared(output_temp_filename, settings); - } else if (output_extension == ".svg") { + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); + } else if (output_extension == SVG) { settings.set(IfcGeom::IteratorSettings::DISABLE_TRIANGULATION, true); - serializer = boost::make_shared(output_temp_filename, settings); + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); if (vmap.count("section-height") != 0) { Logger::Notice("Overriding section height"); static_cast(serializer.get())->setSectionHeight(section_height); @@ -610,18 +676,18 @@ int main(int argc, char** argv) static_cast(serializer.get())->setBoundingRectangle(bounding_width.get(), bounding_height.get()); } } else { - std::cerr << "[Error] Unknown output filename extension '" + output_extension + "'\n"; + cerr_ << "[Error] Unknown output filename extension '" << output_extension << "'\n"; write_log(!quiet); print_usage(); return EXIT_FAILURE; } - if (use_element_hierarchy && output_extension != ".dae") { - std::cerr << "[Error] --use-element-hierarchy can be used only with .dae output.\n"; + if (use_element_hierarchy && output_extension != DAE) { + cerr_ << "[Error] --use-element-hierarchy can be used only with .dae output.\n"; /// @todo Lots of duplicate error-and-exit code. write_log(!quiet); print_usage(); - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); return EXIT_FAILURE; } @@ -641,7 +707,7 @@ int main(int argc, char** argv) } if (!serializer->ready()) { - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); write_log(!quiet); return EXIT_FAILURE; } @@ -649,9 +715,9 @@ int main(int argc, char** argv) time_t start,end; time(&start); - if (!init_input_file(input_filename, ifc_file, no_progress || quiet, mmap)) { + if (!init_input_file(IfcUtil::path::to_utf8(input_filename), ifc_file, no_progress || quiet, mmap)) { write_log(!quiet); - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); /**< @todo Windows Unicode support */ return EXIT_FAILURE; } @@ -660,7 +726,7 @@ int main(int argc, char** argv) /// @todo It would be nice to know and print separate error prints for a case where we found no entities /// and for a case we found no entities that satisfy our filtering criteria. Logger::Notice("No geometrical elements found or none succesfully converted"); - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); write_log(!quiet); return EXIT_FAILURE; } @@ -695,8 +761,8 @@ int main(int argc, char** argv) offset[2] = -center.Z(); } else { if (sscanf(offset_str.c_str(), "%lf;%lf;%lf", &offset[0], &offset[1], &offset[2]) != 3) { - std::cerr << "[Error] Invalid use of --model-offset\n"; - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + cerr_ << "[Error] Invalid use of --model-offset\n"; + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); print_options(serializer_options); return EXIT_FAILURE; } @@ -774,10 +840,10 @@ int main(int argc, char** argv) // Renaming might fail (e.g. maybe the existing file was open in a viewer application) // Do not remove the temp file as user can salvage the conversion result from it. - bool successful = rename_file(output_temp_filename, output_filename); + bool successful = IfcUtil::path::rename_file(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(output_filename)); if (!successful) { - Logger::Error("Unable to write output file '" + output_filename + "', see '" + - output_temp_filename + "' for the conversion result."); + cerr_ << "Unable to write output file '" << output_filename << "', see '" << + output_temp_filename << "' for the conversion result."; } if (validate && Logger::MaxSeverity() >= Logger::LOG_ERROR) { @@ -789,45 +855,52 @@ int main(int argc, char** argv) time(&end); - if (!quiet) { - int seconds = (int)difftime(end, start); - std::stringstream msg; - int minutes = seconds / 60; - seconds = seconds % 60; - msg << "\nConversion took"; - if (minutes > 0) { - msg << " " << minutes << " minute"; - if (minutes > 1) { - msg << "s"; - } - } - msg << " " << seconds << " second"; - if (seconds > 1) { - msg << "s"; - } - Logger::Status(msg.str()); - } + if (!quiet) { + Logger::Status("\nConversion took " + format_duration(start, end)); + } return successful ? EXIT_SUCCESS : EXIT_FAILURE; } +std::string format_duration(time_t start, time_t end) +{ + int seconds = (int)difftime(end, start); + std::stringstream ss; + int minutes = seconds / 60; + seconds = seconds % 60; + if (minutes > 0) { + ss << minutes << " minute"; + if (minutes == 0 || minutes > 1) { + ss << "s"; + } + ss << " "; + } + ss << seconds << " second"; + if (seconds == 0 || seconds > 1) { + ss << "s"; + } + return ss.str(); +} + void write_log(bool header) { - std::string log = log_stream.str(); + path_t log = log_stream.str(); if (!log.empty()) { - if (header) { - std::cout << "\nLog:\n"; - } - std::cout << log << std::endl; + if (header) { + cout_ << "\nLog:\n"; + } + cout_ << log << std::endl; } } #include bool init_input_file(const std::string& filename, IfcParse::IfcFile*& ifc_file, bool no_progress, bool mmap) { + time_t start, end; // Prevent IfcFile::Init() prints by setting output to null temporarily if (no_progress) { Logger::SetOutput(NULL, &log_stream); } + time(&start); #ifdef USE_MMAP ifc_file = new IfcParse::IfcFile(filename, mmap); #else @@ -844,8 +917,10 @@ bool init_input_file(const std::string& filename, IfcParse::IfcFile*& ifc_file, Logger::Error("Unable to parse input file '" + filename + "'"); return false; } + time(&end); - if (no_progress) { Logger::SetOutput(&std::cout, &log_stream); } + if (no_progress) { Logger::SetOutput(&cout_, &log_stream); } + else { Logger::Status("Parsing input file took " + format_duration(start, end)); } return true; @@ -857,7 +932,7 @@ bool append_filter(const std::string& type, const std::vector& valu parse_filter(temp, values); // Merge values only if type and arg match. if ((filter.type != geom_filter::UNUSED && filter.type != temp.type) || (!filter.arg.empty() && filter.arg != temp.arg)) { - std::cerr << "[Error] Multiple '" << type << "' filters specified with different criteria\n"; + cerr_ << "[Error] Multiple '" << type.c_str() << "' filters specified with different criteria\n"; return false; } filter.type = temp.type; @@ -873,9 +948,10 @@ size_t read_filters_from_file( exclusion_filter& exclude_filter, exclusion_traverse_filter& exclude_traverse_filter) { - std::ifstream filter_file(filename.c_str()); + std::ifstream filter_file(IfcUtil::path::from_utf8(filename).c_str()); + if (!filter_file.is_open()) { - std::cerr << "[Error] Unable to open filter file '" + filename + "' or the file does not exist.\n"; + cerr_ << "[Error] Unable to open filter file '" << IfcUtil::path::from_utf8(filename) << "' or the file does not exist.\n"; return 0; } @@ -910,11 +986,11 @@ size_t read_filters_from_file( else if (type == "exclude") { if (append_filter("exclude", values, exclude_filter)) { ++num_filters; } } else if (type == "exclude+") { if (append_filter("exclude+", values, exclude_traverse_filter)) { ++num_filters; } } else { - std::cerr << "[Error] Invalid filtering type at line " + boost::lexical_cast(line_number) + "\n"; + cerr_ << "[Error] Invalid filtering type at line " << boost::lexical_cast(line_number) << "\n"; return 0; } } catch(...) { - std::cerr << "[Error] Unable to parse filter at line " + boost::lexical_cast(line_number) + ".\n"; + cerr_ << "[Error] Unable to parse filter at line " << boost::lexical_cast(line_number) << ".\n"; return 0; } } diff --git a/src/ifcexpressparser/bootstrap.py b/src/ifcexpressparser/bootstrap.py index 934376d59b..40992c6910 100644 --- a/src/ifcexpressparser/bootstrap.py +++ b/src/ifcexpressparser/bootstrap.py @@ -122,6 +122,7 @@ actions = { 'select_type' : "lambda t: SelectType(t)", 'binary_type' : "lambda t: BinaryType(t)", 'subtype_declaration' : "lambda t: SubTypeExpression(t)", + 'supertype_constraint' : "lambda t: SuperTypeExpression(t)", 'derive_clause' : "lambda t: AttributeList('derive', t)", 'derived_attr' : "lambda t: DerivedAttribute(t)", 'inverse_clause' : "lambda t: AttributeList('inverse', t)", @@ -178,6 +179,7 @@ cache_file = sys.argv[1] + ".cache.dat" if os.path.exists(cache_file): with open(cache_file, "rb") as f: mapping = pickle.load(f) + schema = mapping.schema else: from pyparsing import * from nodes import * diff --git a/src/ifcexpressparser/schema_class.py b/src/ifcexpressparser/schema_class.py index 80dd53633e..a33a68900e 100644 --- a/src/ifcexpressparser/schema_class.py +++ b/src/ifcexpressparser/schema_class.py @@ -23,6 +23,8 @@ import nodes import codegen import templates +from collections import defaultdict + class SchemaClass(codegen.Base): def __init__(self, mapping): @@ -109,7 +111,8 @@ __attribute__((optnone)) try: declared_type = get_declared_type(type, emitted) except UnmetDependenciesException: - print("Unmet", repr(name)) + # @todo? + # print("Unmet", repr(name)) return False statements.append(' %(schema_name)s_%(name)s_type = new type_declaration("%(name)s", %%(index_in_schema_%(name)s)d, %(declared_type)s);' % locals()) @@ -124,7 +127,8 @@ __attribute__((optnone)) def write_entity(schema_name, name, type): if len(type.supertypes) == 0 or set(map(lambda s: s.lower(), type.supertypes)) < emitted: supertype = '0' if len(type.supertypes) == 0 else '%s_%s_type' % (schema_name, type.supertypes[0]) - statements.append(' %(schema_name)s_%(name)s_type = new entity("%(name)s", %%(index_in_schema_%(name)s)d, %(supertype)s);' % locals()) + is_abstract = "true" if type.abstract else "false" + statements.append(' %(schema_name)s_%(name)s_type = new entity("%(name)s", %(is_abstract)s, %%(index_in_schema_%(name)s)d, %(supertype)s);' % locals()) else: return False def write_select(schema_name, name, type): @@ -166,11 +170,11 @@ __attribute__((optnone)) attribute_names = list(map(operator.attrgetter('name'), mapping.arguments(type))) statements.append(' {') - statements.append(' std::vector attributes; attributes.reserve(%d);' % len(type.attributes)) + statements.append(' std::vector attributes; attributes.reserve(%d);' % len(type.attributes)) for attr in type.attributes: attr_name, optional = attr.name, str(attr.optional).lower() decl_type = get_declared_type(attr.type) - statements.append(' attributes.push_back(new entity::attribute("%(attr_name)s", %(decl_type)s, %(optional)s));' % locals()) + statements.append(' attributes.push_back(new attribute("%(attr_name)s", %(decl_type)s, %(optional)s));' % locals()) statements.append(' std::vector derived; derived.reserve(%d);' % len(attribute_names)) statements.append(' ' + " ".join(map(lambda b: 'derived.push_back(%s);' % str(b in derived).lower(), attribute_names))) statements.append(' %(schema_name)s_%(name)s_type->set_attributes(attributes, derived);' % locals()) @@ -179,7 +183,7 @@ __attribute__((optnone)) for name, type in mapping.schema.entities.items(): if type.inverse: statements.append(' {') - statements.append(' std::vector attributes; attributes.reserve(%d);' % len(type.inverse.elements)) + statements.append(' std::vector attributes; attributes.reserve(%d);' % len(type.inverse.elements)) for attr in type.inverse.elements: if attr.bounds: make_bound = lambda b: -1 if b == '?' else int(b) @@ -189,9 +193,22 @@ __attribute__((optnone)) attr_name, aggr_type, entity_ref = attr.name, attr.type, attr.entity if aggr_type is None: aggr_type = 'unspecified' attribute_entity, attribute_entity_index = find_inverse_name_and_index(entity_ref, attr.attribute) - statements.append(' attributes.push_back(new entity::inverse_attribute("%(attr_name)s", entity::inverse_attribute::%(aggr_type)s_type, %(bound1)d, %(bound2)d, %(schema_name)s_%(entity_ref)s_type, %(schema_name)s_%(attribute_entity)s_type->attributes()[%(attribute_entity_index)d]));' % locals()) + statements.append(' attributes.push_back(new inverse_attribute("%(attr_name)s", inverse_attribute::%(aggr_type)s_type, %(bound1)d, %(bound2)d, %(schema_name)s_%(entity_ref)s_type, %(schema_name)s_%(attribute_entity)s_type->attributes()[%(attribute_entity_index)d]));' % locals()) statements.append(' %(schema_name)s_%(name)s_type->set_inverse_attributes(attributes);' % locals()) statements.append(' }') + + subtypes = defaultdict(list) + + for name, type in mapping.schema.entities.items(): + for ty in type.supertypes: + subtypes[ty].append(name) + + for name, tys in subtypes.items(): + statements.append(' {') + statements.append(' std::vector defs; defs.reserve(%d);' % len(tys)) + statements.append((' ' + "".join(map(lambda t: ("defs.push_back(%%(schema_name)s_%s_type);" % t), tys))) % locals()) + statements.append(' %(schema_name)s_%(name)s_type->set_subtypes(defs);' % locals()) + statements.append(' }') statements.append('') statements.append(' std::vector declarations; declarations.reserve(%(num_declarations)d);' % locals()) diff --git a/src/ifcgeom/kernels/opencascade/IfcGeom.h b/src/ifcgeom/kernels/opencascade/IfcGeom.h index 9af42283ec..e128d33f56 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeom.h +++ b/src/ifcgeom/kernels/opencascade/IfcGeom.h @@ -126,6 +126,7 @@ private: std::map vertex_mapping_; std::map, TopoDS_Edge> edges_; double eps_; + bool non_manifold_; template void loop_(IfcSchema::IfcCartesianPoint::list::ptr& ps, const Fn& callback) { @@ -153,6 +154,9 @@ private: ~faceset_helper(); + bool non_manifold() const { return non_manifold_; } + bool& non_manifold() { return non_manifold_; } + bool edge(const IfcSchema::IfcCartesianPoint* a, const IfcSchema::IfcCartesianPoint* b, TopoDS_Edge& e) { int A = vertex_mapping_[a->data().id()]; int B = vertex_mapping_[b->data().id()]; @@ -194,6 +198,7 @@ private: if (kernel_->wire_intersections(wire, results)) { Logger::Warning("Self-intersections with " + boost::lexical_cast(results.Extent()) + " cycles detected", loop); kernel_->select_largest(results, wire); + non_manifold_ = true; } return true; @@ -295,7 +300,7 @@ public: void remove_collinear_points_from_loop(TColgp_SequenceOfPnt& polygon, bool closed, double tol=-1.); bool wire_to_sequence_of_point(const TopoDS_Wire&, TColgp_SequenceOfPnt&); void sequence_of_point_to_wire(const TColgp_SequenceOfPnt&, TopoDS_Wire&, bool closed); - bool approximate_plane_through_wire(const TopoDS_Wire&, gp_Pln&); + bool approximate_plane_through_wire(const TopoDS_Wire&, gp_Pln&, double eps=-1.); bool flatten_wire(TopoDS_Wire&); bool triangulate_wire(const TopoDS_Wire&, TopTools_ListOfShape&); bool wire_intersections(const TopoDS_Wire & wire, TopTools_ListOfShape & wires); diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomFaces.cpp b/src/ifcgeom/kernels/opencascade/IfcGeomFaces.cpp index 1f752e30fd..e016fd6e6c 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomFaces.cpp +++ b/src/ifcgeom/kernels/opencascade/IfcGeomFaces.cpp @@ -95,6 +95,8 @@ #include #include +#include + #ifdef USE_IFC4 #include #include @@ -212,8 +214,6 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcFace* l, TopoDS_Shape& face) { for (; exp.More(); exp.Next(), count++) { if (count < 2) { edges[count] = TopoDS::Edge(exp.Current()); - } else { - break; } } @@ -258,22 +258,19 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcFace* l, TopoDS_Shape& face) { // @todo is this still relevant considering the code above mf = new BRepBuilderAPI_MakeFace(pln, wire, true); } else { - mf = new BRepBuilderAPI_MakeFace(wire); + BRepLib_FindSurface fs(wire, getValue(GV_PRECISION), true, true); + if (fs.Found()) { + mf = new BRepBuilderAPI_MakeFace(fs.Surface(), wire); + ShapeFix_ShapeTolerance ftol; + ftol.SetTolerance(wire, fs.ToleranceReached(), TopAbs_WIRE); + } } } else { /// @todo check necessity of false here - mf = new BRepBuilderAPI_MakeFace(face_surface, wire, false); - } + mf = new BRepBuilderAPI_MakeFace(face_surface, wire, false); + } - /* BRepBuilderAPI_FaceError er = mf->Error(); - if (er == BRepBuilderAPI_NotPlanar) { - ShapeFix_ShapeTolerance FTol; - FTol.SetTolerance(wire, getValue(GV_PRECISION), TopAbs_WIRE); - delete mf; - mf = new BRepBuilderAPI_MakeFace(wire); - } */ - - if (mf->IsDone()) { + if (mf && mf->IsDone()) { TopoDS_Face outer_face_bound = mf->Face(); // In case of (non-planar) face surface, p-curves need to be computed. @@ -315,11 +312,12 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcFace* l, TopoDS_Shape& face) { success = true; } } else { - const bool non_planar = mf->Error() == BRepBuilderAPI_NotPlanar; + // if mf == nullptr, it means we failed to find a surface earlier using BRepLib_FindSurface + const bool non_planar = mf == nullptr || mf->Error() == BRepBuilderAPI_NotPlanar; delete mf; if (non_planar && bounds->size() == 1 && face_surface.IsNull()) { - Logger::Message(Logger::LOG_ERROR, "Triangulating face boundary", bound); + Logger::Message(Logger::LOG_WARNING, "Triangulating face boundary", bound); // When creating a solid, flatting the boundary only postpones the issue to // creating a topological manifold out of the individual faces. diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomFunctions.cpp b/src/ifcgeom/kernels/opencascade/IfcGeomFunctions.cpp index 24bb7b858a..09e0d01d99 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomFunctions.cpp +++ b/src/ifcgeom/kernels/opencascade/IfcGeomFunctions.cpp @@ -101,12 +101,15 @@ #include #include #include +#include #include #include #include #include +#include + #include #include @@ -139,6 +142,7 @@ #include +#include #include #include @@ -313,6 +317,124 @@ namespace { return M; } + class points_on_planar_face_generator { + private: + const TopoDS_Face& f_; + Handle(Geom_Surface) plane_; + BRepTopAdaptor_FClass2d cls_; + double u0, u1, v0, v1; + int i, j; + static const int N = 10; + + public: + points_on_planar_face_generator(const TopoDS_Face& f) + : f_(f) + , plane_(BRep_Tool::Surface(f_)) + , cls_(f_, BRep_Tool::Tolerance(f_)) + , i(0), j(0) + { + BRepTools::UVBounds(f_, u0, u1, v0, v1); + } + + void reset() { + i = j = 0; + } + + bool operator()(gp_Pnt& p) { + while (j < N) { + double u = u0 + (u1 - u0) * i / N; + double v = v0 + (v1 - v0) * j / N; + + i++; + if (i == N) { + i = 0; + j++; + } + + // Specifically does not consider ON + if (cls_.Perform(gp_Pnt2d(u, v)) == TopAbs_IN) { + plane_->D0(u, v, p); + return true; + } + } + + return false; + } + }; + + double min_face_face_distance(const TopoDS_Shape& a, double max_search) { + /* + NB: This is currently only implemented for planar surfaces. + */ + double M = std::numeric_limits::infinity(); + + TopTools_IndexedMapOfShape faces; + + TopExp::MapShapes(a, TopAbs_FACE, faces); + + IfcGeom::impl::tree tree; + + // Add edges to tree + for (int i = 1; i <= faces.Extent(); ++i) { + if (BRep_Tool::Surface(TopoDS::Face(faces(i)))->DynamicType() == STANDARD_TYPE(Geom_Plane)) { + tree.add(i, faces(i)); + } + } + + for (int j = 1; j <= faces.Extent(); ++j) { + const TopoDS_Face& f = TopoDS::Face(faces(j)); + const Handle(Geom_Surface)& fs = BRep_Tool::Surface(f); + + if (fs->DynamicType() != STANDARD_TYPE(Geom_Plane)) { + continue; + } + + points_on_planar_face_generator pgen(f); + + Bnd_Box b; + BRepBndLib::AddClose(f, b); + b.Enlarge(max_search); + + std::vector edge_idxs = tree.select_box(b, false); + std::vector::const_iterator it = edge_idxs.begin(); + for (; it != edge_idxs.end(); ++it) { + if (*it == j) { + continue; + } + + const TopoDS_Face& g = TopoDS::Face(faces(*it)); + const Handle(Geom_Surface)& gs = BRep_Tool::Surface(g); + + auto p0 = Handle(Geom_Plane)::DownCast(fs); + auto p1 = Handle(Geom_Plane)::DownCast(gs); + + if (p0->Position().IsCoplanar(p1->Position(), max_search, asin(max_search))) { + pgen.reset(); + + BRepTopAdaptor_FClass2d cls(g, BRep_Tool::Tolerance(g)); + + gp_Pnt test; + while (pgen(test)) { + gp_Vec d = test.XYZ() - p1->Position().Location().XYZ(); + double u = d.Dot(p1->Position().XDirection()); + double v = d.Dot(p1->Position().YDirection()); + + if (cls.Perform(gp_Pnt2d(u, v)) == TopAbs_IN) { + gp_Pnt test2; + p1->D0(u, v, test2); + double w = gp_Vec(p1->Position().Direction().XYZ()).Dot(test2.XYZ() - test.XYZ()); + if (w < M) { + M = w; + } + } + } + } + } + } + + return M; + } + void bounding_box_overlap(double p, const TopoDS_Shape& a, const TopTools_ListOfShape& b, TopTools_ListOfShape& c) { Bnd_Box A; BRepBndLib::Add(a, A); @@ -335,6 +457,17 @@ namespace { } } } + +#ifdef UNIFY_OPERANDS + TopoDS_Shape unify(const TopoDS_Shape& s) { + ShapeUpgrade_UnifySameDomain usd(s); + usd.SetLinearTolerance(Precision::Confusion() * 10.); + usd.SetAngularTolerance(Precision::Angular() * 10.); + usd.Build(); + return usd.Shape(); + } +#endif + } namespace { @@ -375,32 +508,71 @@ bool IfcGeom::Kernel::create_solid_from_faces(const TopTools_ListOfShape& face_l return false; } - TopTools_ListIteratorOfListOfShape face_iterator; + TopTools_ListIteratorOfListOfShape face_iterator; - BRepOffsetAPI_Sewing builder; - builder.SetTolerance(getValue(GV_PRECISION)); - builder.SetMaxTolerance(getValue(GV_PRECISION)); - builder.SetMinTolerance(getValue(GV_PRECISION)); + bool has_shared_edges = false; + TopTools_MapOfShape edge_set; + + // In case there are wire interesections or failures in non-planar wire triangulations + // the idea is to let occt do an exhaustive search of edge partners. But we have not + // found a case where this actually improves boolean ops later on. + // if (!faceset_helper_ || !faceset_helper_->non_manifold()) { for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) { - builder.Add(face_iterator.Value()); + // As soon as is detected one of the edges is shared, the assumption is made no + // additional sewing is necessary. + if (!has_shared_edges) { + TopExp_Explorer exp(face_iterator.Value(), TopAbs_EDGE); + for (; exp.More(); exp.Next()) { + if (edge_set.Contains(exp.Current())) { + has_shared_edges = true; + break; + } + edge_set.Add(exp.Current()); + } + } + } + + BRepOffsetAPI_Sewing sewing_builder; + sewing_builder.SetTolerance(getValue(GV_PRECISION)); + sewing_builder.SetMaxTolerance(getValue(GV_PRECISION)); + sewing_builder.SetMinTolerance(getValue(GV_PRECISION)); + + BRep_Builder builder; + TopoDS_Shell shell; + builder.MakeShell(shell); + + for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) { + if (has_shared_edges) { + builder.Add(shell, face_iterator.Value()); + } else { + sewing_builder.Add(face_iterator.Value()); + } } try { - builder.Perform(); - shape = builder.SewedShape(); + if (has_shared_edges) { + ShapeFix_Shell fix; + fix.FixFaceOrientation(shell); + shape = fix.Shape(); + } else { + sewing_builder.Perform(); + shape = sewing_builder.SewedShape(); + } + + BRepCheck_Analyzer ana(shape); + valid_shell = ana.IsValid(); - { - BRepCheck_Analyzer ana(shape); - if (!ana.IsValid()) { - ShapeFix_Shape sfs(shape); - sfs.Perform(); - shape = sfs.Shape(); - } + if (!valid_shell) { + ShapeFix_Shape sfs(shape); + sfs.Perform(); + shape = sfs.Shape(); + + BRepCheck_Analyzer reana(shape); + valid_shell = reana.IsValid(); } - BRepCheck_Analyzer ana(shape); - valid_shell = ana.IsValid() != 0 && count_occt(shape, TopAbs_SHELL) > 0; + valid_shell &= count_occt(shape, TopAbs_SHELL) > 0; } catch (const Standard_Failure& e) { if (e.GetMessageString() && strlen(e.GetMessageString())) { Logger::Error(e.GetMessageString()); @@ -2276,12 +2448,15 @@ bool IfcGeom::Kernel::is_identity_transform(const IfcUtil::IfcBaseClass* l) { } } -bool IfcGeom::Kernel::approximate_plane_through_wire(const TopoDS_Wire& wire, gp_Pln& plane) { +bool IfcGeom::Kernel::approximate_plane_through_wire(const TopoDS_Wire& wire, gp_Pln& plane, double eps) { // Newell's Method is used for the normal calculation // as a simple edge cross product can give opposite results // for a concave face boundary. // Reference: Graphics Gems III p. 231 + const double eps_ = eps < 1. ? getValue(GV_PRECISION) : eps; + const double eps2 = eps_ * eps_; + double x = 0, y = 0, z = 0; gp_Pnt current, previous, first; gp_XYZ center; @@ -2321,8 +2496,18 @@ bool IfcGeom::Kernel::approximate_plane_through_wire(const TopoDS_Wire& wire, gp if (n < 3) { return false; } - + plane = gp_Pln(center / n, gp_Dir(x, y, z)); + + exp.Init(wire); + for (; exp.More(); exp.Next()) { + const TopoDS_Vertex& v = exp.CurrentVertex(); + current = BRep_Tool::Pnt(v); + if (plane.SquareDistance(current) > eps2) { + return false; + } + } + return true; } @@ -2355,12 +2540,16 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS // alternatively we use the regular OCCT incremental mesher on a new face // created from the UV coordinates of the original wire. Pray to our gods // that the vertex coordinates are unaffected by the meshing algorithm and - // map them back to 3d coordinates when iterating over the mesh triangles. + // map them back to 3d coordinates when iterating over the mesh triangles. + + // In addition, to maintain a manifold shell, we need to make sure that + // every edge from the input wire is used exactly once in the list of + // resulting faces. And that other internal edges are used twice. typedef std::pair uv_node; gp_Pln pln; - if (!approximate_plane_through_wire(wire, pln)) { + if (!approximate_plane_through_wire(wire, pln, std::numeric_limits::infinity())) { return false; } @@ -2370,15 +2559,35 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS BRepTools_WireExplorer exp(wire); BRepBuilderAPI_MakePolygon mp; - std::map mapping; + std::map mapping; + std::map, TopoDS_Edge> existing_edges, new_edges; // Add UV coordinates to a newly created polygon for (; exp.More(); exp.Next()) { - gp_Pnt p = BRep_Tool::Pnt(exp.CurrentVertex()); + // Project onto plane + const TopoDS_Vertex& V = exp.CurrentVertex(); + gp_Pnt p = BRep_Tool::Pnt(V); double u = (p.XYZ() - pnt).Dot(udir); double v = (p.XYZ() - pnt).Dot(vdir); - mp.Add(gp_Pnt(u, v, 0)); - mapping.insert(std::make_pair(std::make_pair(u, v), p)); + mp.Add(gp_Pnt(u, v, 0.)); + + mapping.insert(std::make_pair(std::make_pair(u, v), V)); + + // Store existing edges in a map so that triangles can + // actually reference the preexisting edges. + const TopoDS_Edge& e = exp.Current(); + TopoDS_Vertex V0, V1; + TopExp::Vertices(e, V0, V1, true); + gp_Pnt p0 = BRep_Tool::Pnt(V0); + gp_Pnt p1 = BRep_Tool::Pnt(V1); + double u0 = (p0.XYZ() - pnt).Dot(udir); + double v0 = (p0.XYZ() - pnt).Dot(vdir); + double u1 = (p1.XYZ() - pnt).Dot(udir); + double v1 = (p1.XYZ() - pnt).Dot(vdir); + uv_node uv0 = std::make_pair(u0, v0); + uv_node uv1 = std::make_pair(u1, v1); + existing_edges.insert(std::make_pair(std::make_pair(uv0, uv1), e)); + existing_edges.insert(std::make_pair(std::make_pair(uv1, uv0), TopoDS::Edge(e.Reversed()))); } // Not closed by default @@ -2391,7 +2600,7 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS int n123[3]; TopLoc_Location loc; Handle_Poly_Triangulation tri = BRep_Tool::Triangulation(face, loc); - + if (!tri.IsNull()) { const TColgp_Array1OfPnt& nodes = tri->Nodes(); @@ -2402,20 +2611,49 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS else triangles(i).Get(n123[0], n123[1], n123[2]); // Create polygons from the mesh vertices - BRepBuilderAPI_MakePolygon mp2; + BRepBuilderAPI_MakeWire mp2; for (int j = 0; j < 3; ++j) { - const gp_Pnt& uv = nodes.Value(n123[j]); - uv_node key = std::make_pair(uv.X(), uv.Y()); + + uv_node uvnodes[2]; + TopoDS_Vertex vs[2]; - if (mapping.find(key) == mapping.end()) { - Logger::Error("Internal error: unable to unproject uv-mesh"); - return false; + for (int k = 0; k < 2; ++k) { + const gp_Pnt& uv = nodes.Value(n123[(j + k) % 3]); + uvnodes[k] = std::make_pair(uv.X(), uv.Y()); + + auto it = mapping.find(uvnodes[k]); + if (it == mapping.end()) { + Logger::Error("Internal error: unable to unproject uv-mesh"); + return false; + } + + vs[k] = it->second; } - const gp_Pnt& p = mapping.find(key)->second; - mp2.Add(p); + auto it = existing_edges.find(std::make_pair(uvnodes[0], uvnodes[1])); + if (it != existing_edges.end()) { + // This is a boundary edge, reuse existing edge from wire + mp2.Add(it->second); + } else { + auto jt = new_edges.find(std::make_pair(uvnodes[0], uvnodes[1])); + if (jt != new_edges.end()) { + // We have already added the reverse as part of another + // triangle, reuse this edge. + mp2.Add(TopoDS::Edge(jt->second)); + } else { + // This is a new internal edge. Register the reverse + // for reuse later. We need to be sure to reuse vertices + // for the edge construction because otherwise the wire + // builder will use geometrical proximity for vertex + // connections in which case the edge will be copied + // and no longer partner with other edges from the shell. + TopoDS_Edge ne = BRepBuilderAPI_MakeEdge(vs[0], vs[1]); + mp2.Add(ne); + // Store the reverse to be picked up later. + new_edges.insert(std::make_pair(std::make_pair(uvnodes[1], uvnodes[0]), TopoDS::Edge(ne.Reversed()))); + } + } } - mp2.Close(); BRepBuilderAPI_MakeFace mf(mp2.Wire()); if (mf.IsDone()) { @@ -2428,6 +2666,42 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS } } faces.Append(triangle_face); + } else { + Logger::Error("Internal error: missing face"); + return false; + } + } + } + + TopTools_IndexedDataMapOfShapeListOfShape mape, mapn; + TopExp::MapShapesAndAncestors(wire, TopAbs_EDGE, TopAbs_WIRE, mape); + TopTools_ListIteratorOfListOfShape it(faces); + for (; it.More(); it.Next()) { + TopExp::MapShapesAndAncestors(it.Value(), TopAbs_EDGE, TopAbs_WIRE, mapn); + } + + // Validation + + for (int i = 1; i <= mape.Extent(); ++i) { + TopTools_ListOfShape val; + if (!mapn.FindFromKey(mape.FindKey(i), val)) { + // All existing edges need to exist in the new faces + Logger::Error("Internal error, missing edge from triangulation"); + if (faceset_helper_ != nullptr) { + faceset_helper_->non_manifold() = true; + } + } + } + + for (int i = 1; i <= mapn.Extent(); ++i) { + const TopoDS_Shape& v = mapn.FindKey(i); + int n = mapn.FindFromIndex(i).Extent(); + // Existing edges are boundaries with use 1 + // New edges are internal with use 2 + if (n != (mape.Contains(v) ? 1 : 2)) { + Logger::Error("Internal error, non-manifold result from triangulation"); + if (faceset_helper_ != nullptr) { + faceset_helper_->non_manifold() = true; } } } @@ -2876,7 +3150,23 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a, const TopoDS_Shap return succesful; } #else -bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a, const TopTools_ListOfShape& b_, BOPAlgo_Operation op, TopoDS_Shape& result, double fuzziness) { + +bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a_, const TopTools_ListOfShape& b__, BOPAlgo_Operation op, TopoDS_Shape& result, double fuzziness) { + +#ifdef UNIFY_OPERANDS + TopoDS_Shape a = unify(a_); + TopTools_ListOfShape b_; + { + TopTools_ListIteratorOfListOfShape it(b__); + for (; it.More(); it.Next()) { + b_.Append(unify(it.Value())); + } + } +#else + const TopoDS_Shape& a = a_; + const TopTools_ListOfShape& b_ = b__; +#endif + bool success = false; BRepAlgoAPI_BooleanOperation* builder; TopTools_ListOfShape B, b; @@ -2954,14 +3244,25 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a, const TopTools_Li // when there are edges or vertex-edge distances close to the used fuzziness, the // output is not trusted and the operation is attempted with a higher fuzziness. - double min_lengh_result = (std::min)(min_edge_length(r), min_vertex_edge_distance(r, getValue(GV_PRECISION), fuzziness * 10.)); - success = min_lengh_result <= min_length_orig || min_lengh_result > fuzziness * 10.; - + int reason = 0; + double v; + if ((v = min_edge_length(r)) < fuzziness * 10.) { + reason = 0; + success = false; + } else if ((v = min_vertex_edge_distance(r, getValue(GV_PRECISION), fuzziness * 10.)) < fuzziness * 10.) { + reason = 1; + success = false; + } else if ((v = min_face_face_distance(r, fuzziness * 10.)) < fuzziness * 10.) { + reason = 2; + success = false; + } + if (success) { result = r; } else { + static const char* const reason_strings[] = { "edge length", "vertex-edge", "face-face" }; std::stringstream str; - str << "Boolean operation result failing interference check, with fuzziness " << fuzziness << " min length " << min_lengh_result << " originally " << min_length_orig; + str << "Boolean operation result failing " << reason_strings[reason] << " interference check, with fuzziness " << fuzziness << " with length " << v; Logger::Notice(str.str()); } } else { @@ -2975,16 +3276,21 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a, const TopTools_Li #if OCC_VERSION_HEX >= 0x70000 builder->DumpErrors(str); #else - str << "Error code :" << builder->ErrorStatus(); + str << "Error code: " << builder->ErrorStatus(); #endif - Logger::Notice(str.str()); + std::string str_str = str.str(); + if (str_str.size()) { + Logger::Notice(str_str); + } } delete builder; if (!success) { const double new_fuzziness = fuzziness * 10.; - if (new_fuzziness + 1e-15 <= getValue(GV_PRECISION) * 1000. && new_fuzziness < min_length_orig) { + if (new_fuzziness - 1e-15 <= getValue(GV_PRECISION) * 10000. && new_fuzziness < min_length_orig) { return boolean_operation(a, b, op, result, new_fuzziness); - } + } else { + Logger::Notice("No longer attempting boolean operation with higher fuzziness"); + } } return success; } @@ -3024,6 +3330,7 @@ IfcGeom::Kernel::faceset_helper::~faceset_helper() { IfcGeom::Kernel::faceset_helper::faceset_helper(Kernel* kernel, const IfcSchema::IfcConnectedFaceSet* l) : kernel_(kernel) + , non_manifold_(false) { kernel->faceset_helper_ = this; @@ -3048,6 +3355,9 @@ IfcGeom::Kernel::faceset_helper::faceset_helper(Kernel* kernel, const IfcSchema: } } + // Use the bbox diagonal to influence local epsilon + // double bdiff = std::sqrt(box.SquareExtent()); + // Find the minimal bounding box edge double bmin[3], bmax[3]; box.Get(bmin[0], bmin[1], bmin[2], bmax[0], bmax[1], bmax[2]); @@ -3060,6 +3370,12 @@ IfcGeom::Kernel::faceset_helper::faceset_helper(Kernel* kernel, const IfcSchema: } eps_ = kernel->getValue(GV_PRECISION) * 10. * (std::min)(1.0, bdiff); + + if (eps_ < Precision::Confusion()) { + // occt uses some hard coded precision values, don't go smaller than that. + // @todo, can be reset though with BRepLib::Precision(double) + eps_ = Precision::Confusion(); + } std::map, int> edge_use; diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomHelpers.cpp b/src/ifcgeom/kernels/opencascade/IfcGeomHelpers.cpp index 1c941b88d6..2710933042 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomHelpers.cpp +++ b/src/ifcgeom/kernels/opencascade/IfcGeomHelpers.cpp @@ -163,15 +163,38 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcVector* l, gp_Vec& v) { } bool IfcGeom::Kernel::convert(const IfcSchema::IfcAxis2Placement3D* l, gp_Trsf& trsf) { - IN_CACHE(IfcAxis2Placement3D,l,gp_Trsf,trsf) - gp_Pnt o;gp_Dir axis = gp_Dir(0,0,1);gp_Dir refDirection; - IfcGeom::Kernel::convert(l->Location(),o); - bool hasRef = l->hasRefDirection(); - if ( l->hasAxis() ) IfcGeom::Kernel::convert(l->Axis(),axis); - if ( hasRef ) IfcGeom::Kernel::convert(l->RefDirection(),refDirection); - gp_Ax3 ax3; - if ( hasRef ) ax3 = gp_Ax3(o,axis,refDirection); - else ax3 = gp_Ax3(o,axis); + IN_CACHE(IfcAxis2Placement3D, l, gp_Trsf, trsf) + + gp_Pnt o; + gp_Dir axis(0, 0, 1); + gp_Dir refDirection; + + IfcGeom::Kernel::convert(l->Location(), o); + const bool hasAxis = l->hasAxis(); + const bool hasRef = l->hasRefDirection(); + + if (hasAxis != hasRef) { + Logger::Warning("Axis and RefDirection should be specified together", l); + } + + if (hasAxis) { + IfcGeom::Kernel::convert(l->Axis(), axis); + } + + if (hasRef) { + IfcGeom::Kernel::convert(l->RefDirection(), refDirection); + } else { + if (!axis.IsParallel(gp::DX(), 1.e-5)) { + refDirection = gp::DX(); + } else { + refDirection = gp::DZ(); + } + gp_Vec Xvec = axis.Dot(refDirection) * axis; + gp_Vec Xaxis = refDirection.XYZ() - Xvec.XYZ(); + refDirection = Xaxis; + } + + gp_Ax3 ax3(o, axis, refDirection); if (!axis_equal(ax3, (gp_Ax3) gp::XOY(), getValue(GV_PRECISION))) { trsf.SetTransformation(ax3, gp::XOY()); diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomShapes.cpp b/src/ifcgeom/kernels/opencascade/IfcGeomShapes.cpp index 7b10f3579b..9914179cde 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomShapes.cpp +++ b/src/ifcgeom/kernels/opencascade/IfcGeomShapes.cpp @@ -482,8 +482,46 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape TopoDS_Wire boundary_wire; IfcSchema::IfcBooleanOperand* operand1 = l->FirstOperand(); IfcSchema::IfcBooleanOperand* operand2 = l->SecondOperand(); - bool is_halfspace = operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class()); - bool is_unbounded_halfspace = is_halfspace && !operand2->declaration().is(IfcSchema::IfcPolygonalBoundedHalfSpace::Class()); + bool has_halfspace_operand = false; + + BOPAlgo_Operation occ_op; + + const IfcSchema::IfcBooleanOperator::Value op = l->Operator(); + if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_DIFFERENCE) { + occ_op = BOPAlgo_CUT; + } else if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_INTERSECTION) { + occ_op = BOPAlgo_COMMON; + } else if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION) { + occ_op = BOPAlgo_FUSE; + } else { + return false; + } + + std::vector second_operands; + second_operands.push_back(operand2); + + if (occ_op == BOPAlgo_CUT) { + bool process_as_list = true; + while (true) { + auto res1 = operand1->as(); + if (res1) { + if (res1->Operator() == op) { + operand1 = res1->FirstOperand(); + second_operands.push_back(res1->SecondOperand()); + } else { + process_as_list = false; + break; + } + } else { + break; + } + } + + if (!process_as_list) { + operand1 = l->FirstOperand(); + second_operands = { operand2 }; + } + } if ( shape_type(operand1) == ST_SHAPELIST ) { if (!(convert_shapes(operand1, items1) && flatten_shape_list(items1, s1, true))) { @@ -501,49 +539,60 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape } const double first_operand_volume = shape_volume(s1); - if ( first_operand_volume <= ALMOST_ZERO ) - Logger::Message(Logger::LOG_WARNING,"Empty solid for:",l->FirstOperand()); - - bool shape2_processed = false; - if ( shape_type(operand2) == ST_SHAPELIST ) { - shape2_processed = convert_shapes(operand2, items2) && flatten_shape_list(items2, s2, true); - } else if ( shape_type(operand2) == ST_SHAPE ) { - shape2_processed = convert_shape(operand2,s2); - if (shape2_processed && !is_halfspace) { - TopoDS_Solid temp_solid; - s2 = ensure_fit_for_subtraction(s2, temp_solid); - } - } else { - Logger::Message(Logger::LOG_ERROR, "Invalid representation item for boolean operation", operand2); + if (first_operand_volume <= ALMOST_ZERO) { + Logger::Message(Logger::LOG_WARNING, "Empty solid for:", l->FirstOperand()); } - if (!shape2_processed) { - shape = s1; - Logger::Message(Logger::LOG_ERROR,"Failed to convert SecondOperand of:",l); - return true; - } + TopTools_ListOfShape second_operand_shapes; - if (!is_halfspace) { - const double second_operand_volume = shape_volume(s2); - if ( second_operand_volume <= ALMOST_ZERO ) - Logger::Message(Logger::LOG_WARNING,"Empty solid for:",operand2); - } + for (auto& operand2 : second_operands) { + bool shape2_processed = false; - if (is_unbounded_halfspace) { - TopoDS_Shape temp; - double d; - if (fit_halfspace(s1, s2, temp, d)) { - if (d < getValue(GV_PRECISION)) { - Logger::Message(Logger::LOG_WARNING, "Subtraction yields unchanged volume:", l); - shape = s1; - return true; + bool is_halfspace = operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class()); + bool is_unbounded_halfspace = is_halfspace && !operand2->declaration().is(IfcSchema::IfcPolygonalBoundedHalfSpace::Class()); + has_halfspace_operand |= is_halfspace; + + { + if (shape_type(operand2) == ST_SHAPELIST) { + shape2_processed = convert_shapes(operand2, items2) && flatten_shape_list(items2, s2, true); + } else if (shape_type(operand2) == ST_SHAPE) { + shape2_processed = convert_shape(operand2, s2); + if (shape2_processed) { + TopoDS_Solid temp_solid; + s2 = ensure_fit_for_subtraction(s2, temp_solid); + } } else { - s2 = temp; + Logger::Message(Logger::LOG_ERROR, "Invalid representation item for boolean operation", operand2); } } - } - const IfcSchema::IfcBooleanOperator::Value op = l->Operator(); + if (is_unbounded_halfspace) { + TopoDS_Shape temp; + double d; + if (fit_halfspace(s1, s2, temp, d)) { + if (d < getValue(GV_PRECISION)) { + Logger::Message(Logger::LOG_WARNING, "Halfspace subtraction yields unchanged volume:", l); + continue; + } else { + s2 = temp; + } + } + } + + if (!shape2_processed) { + Logger::Message(Logger::LOG_ERROR, "Failed to convert SecondOperand:", operand2); + continue; + } + + if (operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class())) { + const double second_operand_volume = shape_volume(s2); + if (second_operand_volume <= ALMOST_ZERO) { + Logger::Message(Logger::LOG_WARNING, "Empty solid for:", operand2); + } + } + + second_operand_shapes.Append(s2); + } /* // TK: A little debugging trick to output both operands for visual inspection @@ -555,24 +604,13 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape builder.Add(compound, s2); shape = compound; return true; - */ - - BOPAlgo_Operation occ_op; - if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_DIFFERENCE) { - occ_op = BOPAlgo_CUT; - } else if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_INTERSECTION) { - occ_op = BOPAlgo_COMMON; - } else if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION) { - occ_op = BOPAlgo_FUSE; - } else { - return false; - } + */ #if OCC_VERSION_HEX < 0x60900 bool valid_result = boolean_operation(s1, s2, occ_op, shape); #else - const double fuzz = is_halfspace ? getValue(GV_PRECISION) * 10. : -1.; - bool valid_result = boolean_operation(s1, s2, occ_op, shape, fuzz); + const double fuzz = has_halfspace_operand ? getValue(GV_PRECISION) * 10. : -1.; + bool valid_result = boolean_operation(s1, second_operand_shapes, occ_op, shape, fuzz); #endif if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_DIFFERENCE) { @@ -893,7 +931,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcRectangularTrimmedSurface* l, } bool IfcGeom::Kernel::convert(const IfcSchema::IfcSurfaceCurveSweptAreaSolid* l, TopoDS_Shape& shape) { - gp_Trsf directrix, position; + gp_Trsf directrix; TopoDS_Shape face; TopoDS_Wire wire, section; @@ -972,7 +1010,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcSurfaceCurveSweptAreaSolid* l, if (has_position) { // IfcSweptAreaSolid.Position (trsf) is an IfcAxis2Placement3D // and therefore has a unit scale factor - shape.Move(position); + shape.Move(trsf); } return true; @@ -1121,9 +1159,9 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcCylindricalSurface* l, TopoDS_ // IfcElementarySurface.Position has unit scale factor #if OCC_VERSION_HEX < 0x60502 - face = BRepBuilderAPI_MakeFace(new Geom_CylindricalSurface(gp::XOY(), l->Radius())).Face().Moved(trsf); + face = BRepBuilderAPI_MakeFace(new Geom_CylindricalSurface(gp::XOY(), l->Radius() * getValue(GV_LENGTH_UNIT))).Face().Moved(trsf); #else - face = BRepBuilderAPI_MakeFace(new Geom_CylindricalSurface(gp::XOY(), l->Radius()), getValue(GV_PRECISION)).Face().Moved(trsf); + face = BRepBuilderAPI_MakeFace(new Geom_CylindricalSurface(gp::XOY(), l->Radius() * getValue(GV_LENGTH_UNIT)), getValue(GV_PRECISION)).Face().Moved(trsf); #endif return true; } diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomWires.cpp b/src/ifcgeom/kernels/opencascade/IfcGeomWires.cpp index 8ccff67a3d..15f8e34a3b 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomWires.cpp +++ b/src/ifcgeom/kernels/opencascade/IfcGeomWires.cpp @@ -875,45 +875,53 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcIndexedPolyCurve* l, TopoDS_Wi BRepBuilderAPI_MakeWire w; - IfcEntityList::ptr segments = l->Segments(); - for (IfcEntityList::it it = segments->begin(); it != segments->end(); ++it) { - IfcUtil::IfcBaseClass* segment = *it; - if (segment->declaration().is(IfcSchema::IfcLineIndex::Class())) { - IfcSchema::IfcLineIndex* line = (IfcSchema::IfcLineIndex*) segment; - std::vector indices = *line; - gp_Pnt previous; - for (std::vector::const_iterator jt = indices.begin(); jt != indices.end(); ++jt) { - if (*jt < 1 || *jt > max_index) { - throw IfcParse::IfcException("IfcIndexedPolyCurve index out of bounds for index " + boost::lexical_cast(*jt)); + if(l->hasSegments()) { + IfcEntityList::ptr segments = l->Segments(); + for (IfcEntityList::it it = segments->begin(); it != segments->end(); ++it) { + IfcUtil::IfcBaseClass* segment = *it; + if (segment->declaration().is(IfcSchema::IfcLineIndex::Class())) { + IfcSchema::IfcLineIndex* line = (IfcSchema::IfcLineIndex*) segment; + std::vector indices = *line; + gp_Pnt previous; + for (std::vector::const_iterator jt = indices.begin(); jt != indices.end(); ++jt) { + if (*jt < 1 || *jt > max_index) { + throw IfcParse::IfcException("IfcIndexedPolyCurve index out of bounds for index " + boost::lexical_cast(*jt)); + } + const gp_Pnt& current = points[*jt - 1]; + if (jt != indices.begin()) { + w.Add(BRepBuilderAPI_MakeEdge(previous, current)); + } + previous = current; } - const gp_Pnt& current = points[*jt - 1]; - if (jt != indices.begin()) { - w.Add(BRepBuilderAPI_MakeEdge(previous, current)); + } else if (segment->declaration().is(IfcSchema::IfcArcIndex::Class())) { + IfcSchema::IfcArcIndex* arc = (IfcSchema::IfcArcIndex*) segment; + std::vector indices = *arc; + if (indices.size() != 3) { + throw IfcParse::IfcException("Invalid IfcArcIndex encountered"); } - previous = current; - } - } else if (segment->declaration().is(IfcSchema::IfcArcIndex::Class())) { - IfcSchema::IfcArcIndex* arc = (IfcSchema::IfcArcIndex*) segment; - std::vector indices = *arc; - if (indices.size() != 3) { - throw IfcParse::IfcException("Invalid IfcArcIndex encountered"); - } - for (int i = 0; i < 3; ++i) { - const int& idx = indices[i]; - if (idx < 1 || idx > max_index) { - throw IfcParse::IfcException("IfcIndexedPolyCurve index out of bounds for index " + boost::lexical_cast(idx)); + for (int i = 0; i < 3; ++i) { + const int& idx = indices[i]; + if (idx < 1 || idx > max_index) { + throw IfcParse::IfcException("IfcIndexedPolyCurve index out of bounds for index " + boost::lexical_cast(idx)); + } } + const gp_Pnt& a = points[indices[0] - 1]; + const gp_Pnt& b = points[indices[1] - 1]; + const gp_Pnt& c = points[indices[2] - 1]; + Handle(Geom_Circle) circ = GC_MakeCircle(a, b, c).Value(); + w.Add(BRepBuilderAPI_MakeEdge(circ, a, c)); + } else { + throw IfcParse::IfcException("Unexpected IfcIndexedPolyCurve segment of type " + segment->declaration().name()); } - const gp_Pnt& a = points[indices[0] - 1]; - const gp_Pnt& b = points[indices[1] - 1]; - const gp_Pnt& c = points[indices[2] - 1]; - Handle(Geom_Circle) circ = GC_MakeCircle(a, b, c).Value(); - w.Add(BRepBuilderAPI_MakeEdge(circ, a, c)); - } else { - throw IfcParse::IfcException("Unexpected IfcIndexedPolyCurve segment of type " + segment->declaration().name()); } - } - + } else if (points.begin() < points.end()) { + std::vector::const_iterator previous = points.begin(); + for (std::vector::const_iterator current = previous+1; current < points.end(); ++current){ + w.Add(BRepBuilderAPI_MakeEdge(*previous, *current)); + previous = current; + } + } + result = w.Wire(); return true; } diff --git a/src/ifcgeom/schema_agnostic/ConversionResult.h b/src/ifcgeom/schema_agnostic/ConversionResult.h index e413f2c0ea..b7b9301e2e 100644 --- a/src/ifcgeom/schema_agnostic/ConversionResult.h +++ b/src/ifcgeom/schema_agnostic/ConversionResult.h @@ -85,7 +85,7 @@ namespace IfcGeom { const ConversionResultPlacement* Placement() const { return placement; } bool hasStyle() const { return style != 0; } const SurfaceStyle& Style() const { return *style; } - void setStyle(const SurfaceStyle* style) { this->style = style; } + void setStyle(const SurfaceStyle* newStyle) { style = newStyle; } int ItemId() const { return id; } }; diff --git a/src/ifcgeom/schema_agnostic/IfcGeomFilter.h b/src/ifcgeom/schema_agnostic/IfcGeomFilter.h index 6e9a68d340..1d457abeb1 100644 --- a/src/ifcgeom/schema_agnostic/IfcGeomFilter.h +++ b/src/ifcgeom/schema_agnostic/IfcGeomFilter.h @@ -40,14 +40,17 @@ namespace IfcGeom { /// http://www.boost.org/doc/libs/1_62_0/doc/html/function/tutorial.html typedef boost::function filter_t; - struct filter { - filter() : include(false), traverse(false) {} - filter(bool incl, bool trav) : include(incl), traverse(trav) {} + struct filter + { + filter() : include(false), traverse(false), traverse_openings(false) {} + filter(bool incl, bool trav, bool trav_openings = false) : include(incl), traverse(trav), traverse_openings(trav_openings) {} /// Should the product be included (true) or excluded (false). bool include; /// If traversal requested, traverse to the parents to see if they satisfy the criteria. E.g. we might be looking for /// children of a storey named "Level 20", or children of entities that have no representation, e.g. IfcCurtainWall. bool traverse; + /// Include opening relationships as part of traversal. + bool traverse_openings; /// Optional description for the filtering criteria of this filter. std::string description; @@ -59,9 +62,10 @@ namespace IfcGeom { return is_match == include; } - static bool traverse_match(IfcUtil::IfcBaseEntity* prod, const filter_t& pred) { - IfcUtil::IfcBaseEntity* parent, *current = prod; - while ((parent = IfcGeom::Kernel::get_decomposing_entity(current)) != nullptr) { + bool traverse_match(IfcUtil::IfcBaseEntity* prod, const filter_t& pred) const + { + IfcUtil::IfcBaseEntity* parent, *current = prod; + while ((parent = IfcGeom::Kernel::get_decomposing_entity(current, traverse_openings)) != nullptr) { if (pred(parent)) { return true; } @@ -139,8 +143,7 @@ namespace IfcGeom { } bool operator()(IfcUtil::IfcBaseEntity* prod) const { - // @note bind1st() and mem_fun() deprecated in C++11, use bind() and mem_fn() when migrating to C++11. - return filter::match(prod, std::bind1st(std::mem_fun(&attribute_filter::match), this)); + return filter::match(prod, std::bind(&attribute_filter::match, this, std::placeholders::_1)); } void update_description() { @@ -172,7 +175,7 @@ namespace IfcGeom { } bool operator()(IfcUtil::IfcBaseEntity* prod) const { - return filter::match(prod, std::bind1st(std::mem_fun(&layer_filter::match), this)); + return filter::match(prod, std::bind(&layer_filter::match, this, std::placeholders::_1)); } struct wildcards_match { @@ -215,7 +218,7 @@ namespace IfcGeom { } bool operator()(IfcUtil::IfcBaseEntity* prod) const { - return filter::match(prod, std::bind1st(std::mem_fun(&entity_filter::match), this)); + return filter::match(prod, std::bind(&entity_filter::match, this, std::placeholders::_1)); } void update_description() { diff --git a/src/ifcgeom/schema_agnostic/IfcGeomRepresentation.cpp b/src/ifcgeom/schema_agnostic/IfcGeomRepresentation.cpp index ea52aaaf3e..92ce22ae93 100644 --- a/src/ifcgeom/schema_agnostic/IfcGeomRepresentation.cpp +++ b/src/ifcgeom/schema_agnostic/IfcGeomRepresentation.cpp @@ -86,7 +86,7 @@ TopoDS_Shape apply_transformation(const TopoDS_Shape& s, const gp_GTrsf& t) { } } -IfcGeom::ConversionResultShape* IfcGeom::Representation::BRep::as_compound() const { +IfcGeom::ConversionResultShape* IfcGeom::Representation::BRep::as_compound(bool force_meters) const { TopoDS_Compound compound; BRep_Builder builder; builder.MakeCompound(compound); @@ -98,7 +98,7 @@ IfcGeom::ConversionResultShape* IfcGeom::Representation::BRep::as_compound() con trsf = ((OpenCascadePlacement*)it->Placement())->trsf(); } - if (settings().get(IteratorSettings::CONVERT_BACK_UNITS)) { + if (!force_meters && settings().get(IteratorSettings::CONVERT_BACK_UNITS)) { gp_Trsf scale; scale.SetScaleFactor(1.0 / settings().unit_magnitude()); trsf.PreMultiply(scale); diff --git a/src/ifcgeom/schema_agnostic/IfcGeomRepresentation.h b/src/ifcgeom/schema_agnostic/IfcGeomRepresentation.h index e938f00a1d..e04f0f9d48 100644 --- a/src/ifcgeom/schema_agnostic/IfcGeomRepresentation.h +++ b/src/ifcgeom/schema_agnostic/IfcGeomRepresentation.h @@ -60,7 +60,7 @@ namespace IfcGeom { IfcGeom::ConversionResults::const_iterator end() const { return shapes_.end(); } const IfcGeom::ConversionResults& shapes() const { return shapes_; } const std::string& id() const { return id_; } - ConversionResultShape* as_compound() const; + ConversionResultShape* as_compound(bool force_meters = false) const; bool calculate_volume(double&) const; bool calculate_surface_area(double&) const; diff --git a/src/ifcgeom/schema_agnostic/Kernel.cpp b/src/ifcgeom/schema_agnostic/Kernel.cpp index 64ee0ce269..2ae967b35b 100644 --- a/src/ifcgeom/schema_agnostic/Kernel.cpp +++ b/src/ifcgeom/schema_agnostic/Kernel.cpp @@ -91,11 +91,11 @@ IfcGeom::Kernel* IfcGeom::impl::KernelFactoryImplementation::construct(const std #define CREATE_GET_DECOMPOSING_ENTITY(IfcSchema) \ \ -IfcSchema::IfcObjectDefinition* get_decomposing_entity_impl(IfcSchema::IfcProduct* product) { \ +IfcSchema::IfcObjectDefinition* get_decomposing_entity_impl(IfcSchema::IfcProduct* product, bool include_openings) {\ IfcSchema::IfcObjectDefinition* parent = 0; \ \ /* In case of an opening element, parent to the RelatingBuildingElement */ \ - if (product->declaration().is(IfcSchema::IfcOpeningElement::Class())) { \ + if (include_openings && product->declaration().is(IfcSchema::IfcOpeningElement::Class())) { \ IfcSchema::IfcOpeningElement* opening = (IfcSchema::IfcOpeningElement*)product; \ IfcSchema::IfcRelVoidsElement::list::ptr voids = opening->VoidsElements(); \ if (voids->size()) { \ @@ -106,7 +106,7 @@ IfcSchema::IfcObjectDefinition* get_decomposing_entity_impl(IfcSchema::IfcProduc IfcSchema::IfcElement* element = (IfcSchema::IfcElement*)product; \ IfcSchema::IfcRelFillsElement::list::ptr fills = element->FillsVoids(); \ /* In case of a RelatedBuildingElement parent to the opening element */ \ - if (fills->size()) { \ + if (fills->size() && include_openings) { \ for (IfcSchema::IfcRelFillsElement::list::it it = fills->begin(); it != fills->end(); ++it) { \ IfcSchema::IfcRelFillsElement* fill = *it; \ IfcSchema::IfcObjectDefinition* ifc_objectdef = fill->RelatingOpeningElement(); \ @@ -158,26 +158,17 @@ namespace { CREATE_GET_DECOMPOSING_ENTITY(Ifc4); } -IfcUtil::IfcBaseEntity* IfcGeom::Kernel::get_decomposing_entity(IfcUtil::IfcBaseEntity* inst) { +IfcUtil::IfcBaseEntity* IfcGeom::Kernel::get_decomposing_entity(IfcUtil::IfcBaseEntity* inst, bool include_openings) { if (inst->as()) { - return get_decomposing_entity_impl(inst->as()); + return get_decomposing_entity_impl(inst->as(), include_openings); } else if (inst->as()) { - return get_decomposing_entity_impl(inst->as()); + return get_decomposing_entity_impl(inst->as(), include_openings); } else { throw IfcParse::IfcException("Unexpected entity " + inst->declaration().name()); } } namespace { - - // LayerAssignments renamed from plural to singular, LayerAssignment, so work around that - IfcEntityList::ptr getLayerAssignments(Ifc2x3::IfcRepresentationItem* item) { - return item->LayerAssignments()->generalize(); - } - IfcEntityList::ptr getLayerAssignments(Ifc4::IfcRepresentationItem* item) { - return item->LayerAssignment()->generalize(); - } - template static std::map get_layers_impl(typename Schema::IfcProduct* prod) { std::map layers; @@ -190,14 +181,6 @@ namespace { layers[(*jt)->Name()] = *jt; } } - - typename Schema::IfcRepresentationItem::list::ptr items = r->template as(); - for (typename Schema::IfcRepresentationItem::list::it it = items->begin(); it != items->end(); ++it) { - typename Schema::IfcPresentationLayerAssignment::list::ptr a = getLayerAssignments(*it)->template as(); - for (typename Schema::IfcPresentationLayerAssignment::list::it jt = a->begin(); jt != a->end(); ++jt) { - layers[(*jt)->Name()] = *jt; - } - } } return layers; } diff --git a/src/ifcgeom/schema_agnostic/Kernel.h b/src/ifcgeom/schema_agnostic/Kernel.h index 7bc04705bd..cddfc5061a 100644 --- a/src/ifcgeom/schema_agnostic/Kernel.h +++ b/src/ifcgeom/schema_agnostic/Kernel.h @@ -78,7 +78,7 @@ namespace IfcGeom { static int surface_genus(const ConversionResultShape*); static bool is_manifold(const ConversionResultShape*); - static IfcUtil::IfcBaseEntity* get_decomposing_entity(IfcUtil::IfcBaseEntity*); + static IfcUtil::IfcBaseEntity* get_decomposing_entity(IfcUtil::IfcBaseEntity*, bool include_openings=true); static std::map get_layers(IfcUtil::IfcBaseEntity*); static IfcEntityList::ptr find_openings(IfcUtil::IfcBaseEntity* product); }; diff --git a/src/ifcgeom/schema_agnostic/SurfaceStyle.cpp b/src/ifcgeom/schema_agnostic/SurfaceStyle.cpp index 09d1344654..6368cd9514 100644 --- a/src/ifcgeom/schema_agnostic/SurfaceStyle.cpp +++ b/src/ifcgeom/schema_agnostic/SurfaceStyle.cpp @@ -72,6 +72,7 @@ void IfcGeom::set_default_style_file(const std::string& json_file) { if (!default_materials_initialized) InitDefaultMaterials(); default_materials.clear(); + // @todo this will probably need to be updated for UTF-8 paths on Windows pt::ptree root; pt::read_json(json_file, root); diff --git a/src/ifcgeomserver/IfcGeomServer.cpp b/src/ifcgeomserver/IfcGeomServer.cpp index 6d9265bcd3..fe82a3f87c 100644 --- a/src/ifcgeomserver/IfcGeomServer.cpp +++ b/src/ifcgeomserver/IfcGeomServer.cpp @@ -49,6 +49,8 @@ #include #include +#include +#include #include #include @@ -89,6 +91,21 @@ std::string format_json(const std::string& s) { return "\"" + s + "\""; } +template <> +std::string format_json(const double& d) { + std::stringstream ss; + ss << std::setprecision(std::numeric_limits::digits10) << d; + return ss.str(); +} + +template <> +std::string format_json(const gp_Dir& d) { + std::stringstream ss; + ss << std::setprecision(std::numeric_limits::digits10) + << "[" << d.X() << "," << d.Y() << "," << d.Z() << "]"; + return ss.str(); +} + static std::streambuf *stdout_orig, *stdout_redir; template @@ -106,6 +123,20 @@ void swrite(std::ostream& s, std::string t) { while (len++ % 4) s.put(0); } +template +void swrite_array(std::ostream& s, const std::vector& us) { + if (std::is_same::value) { + swrite(s, std::string((char*)us.data(), us.size() * sizeof(U))); + } else { + std::vector ts; + ts.reserve(us.size()); + for (auto& u : us) { + ts.push_back((T)u); + } + swrite_array(s, ts); + } +} + class Command { protected: virtual void read_content(std::istream& s) = 0; @@ -256,7 +287,7 @@ public: class Entity : public Command { private: - const IfcGeom::TriangulationElement* geom; + const IfcGeom::TriangulationElement* geom; bool append_line_data; EntityExtension* eext_; protected: @@ -281,8 +312,9 @@ protected: const int integer_representation_id = atoi(representation_id.c_str()); swrite(s, (int32_t)integer_representation_id); - swrite(s, std::string((char*)geom->geometry().verts().data(), geom->geometry().verts().size() * sizeof(float))); - swrite(s, std::string((char*)geom->geometry().normals().data(), geom->geometry().normals().size() * sizeof(float))); + swrite_array(s, geom->geometry().verts()); + swrite_array(s, geom->geometry().normals()); + { std::vector indices; const std::vector& faces = geom->geometry().faces(); @@ -290,7 +322,7 @@ protected: for (std::vector::const_iterator it = faces.begin(); it != faces.end(); ++it) { indices.push_back(*it); } - swrite(s, std::string((char*) indices.data(), indices.size() * sizeof(int32_t))); + swrite_array(s, indices); if (append_line_data) { std::vector lines; @@ -309,7 +341,7 @@ protected: lines.push_back(i2); } - swrite(s, std::string((char*) lines.data(), lines.size() * sizeof(int32_t))); + swrite_array(s, lines); } } { std::vector diffuse_color_array; @@ -342,7 +374,7 @@ protected: } } public: - Entity(const IfcGeom::TriangulationElement* geom, EntityExtension* eext = 0) : Command(ENTITY), geom(geom), append_line_data(false), eext_(eext) {}; + Entity(const IfcGeom::TriangulationElement* geom, EntityExtension* eext = 0) : Command(ENTITY), geom(geom), append_line_data(false), eext_(eext) {}; }; class Next : public Command { @@ -401,12 +433,16 @@ static const std::string SURFACE_AREA_ALONG_X = "SURFACE_AREA_ALONG_X"; static const std::string SURFACE_AREA_ALONG_Y = "SURFACE_AREA_ALONG_Y"; static const std::string SURFACE_AREA_ALONG_Z = "SURFACE_AREA_ALONG_Z"; static const std::string WALKABLE_SURFACE_AREA = "WALKABLE_SURFACE_AREA"; +static const std::string LARGEST_FACE_AREA = "LARGEST_FACE_AREA"; +static const std::string LARGEST_FACE_DIRECTION = "LARGEST_FACE_DIRECTION"; +static const std::string BOUNDING_BOX_SIZE_ALONG_ = "BOUNDING_BOX_SIZE_ALONG_"; +static const std::array XYZ = { "X", "Y", "Z" }; class QuantityWriter_v0 : public EntityExtension { private: - const IfcGeom::NativeElement* elem_; + const IfcGeom::NativeElement* elem_; public: - QuantityWriter_v0(const IfcGeom::NativeElement* elem) : + QuantityWriter_v0(const IfcGeom::NativeElement* elem) : elem_(elem) { put_json(TOTAL_SURFACE_AREA, 0.); @@ -419,12 +455,12 @@ public: class QuantityWriter_v1 : public EntityExtension { private: - const IfcGeom::NativeElement* elem_; + const IfcGeom::NativeElement* elem_; public: - QuantityWriter_v1(const IfcGeom::NativeElement* elem) : + QuantityWriter_v1(const IfcGeom::NativeElement* elem) : elem_(elem) { - double a, b, c; + double a, b, c, largest_face_area = 0.; if (elem_->geometry().calculate_surface_area(a)) { put_json(TOTAL_SURFACE_AREA, a); @@ -439,6 +475,47 @@ public: put_json(SURFACE_AREA_ALONG_Y, b); put_json(SURFACE_AREA_ALONG_Z, c); } + + boost::optional largest_face_dir; + + { + TopoDS_Compound compound = elem_->geometry().as_compound(true); + TopExp_Explorer exp(compound, TopAbs_FACE); + for (; exp.More(); exp.Next()) { + GProp_GProps prop; + BRepGProp::SurfaceProperties(exp.Current(), prop); + const double area = prop.Mass(); + if (area > largest_face_area) { + largest_face_area = area; + + Handle(Geom_Surface) surf = BRep_Tool::Surface(TopoDS::Face(exp.Current())); + if (surf->DynamicType() == STANDARD_TYPE(Geom_Plane)) { + largest_face_dir = Handle(Geom_Plane)::DownCast(surf)->Axis().Direction(); + if (exp.Current().Orientation() == TopAbs_REVERSED) { + largest_face_dir->Reverse(); + } + } + } + } + + Bnd_Box box; + double xyz[6]; + + BRepBndLib::AddClose(compound, box); + + if (!box.IsVoid()) { + box.Get(xyz[0], xyz[1], xyz[2], xyz[3], xyz[4], xyz[5]); + for (int i = 0; i < 3; ++i) { + const double bsz = xyz[i + 3] - xyz[i]; + put_json(BOUNDING_BOX_SIZE_ALONG_ + XYZ[i], bsz); + } + } + } + + if (largest_face_dir) { + put_json(LARGEST_FACE_DIRECTION, *largest_face_dir); + put_json(LARGEST_FACE_AREA, largest_face_area); + } } }; @@ -462,7 +539,7 @@ int main () { double deflection = 1.e-3; bool has_more = false; - IfcGeom::Iterator* iterator = 0; + IfcGeom::Iterator* iterator = 0; IfcParse::IfcFile* file = 0; std::vector< std::pair > setting_pairs; @@ -497,7 +574,7 @@ int main () { settings.set_deflection_tolerance(deflection); file = new IfcParse::IfcFile(data, (int)len); - iterator = new IfcGeom::Iterator(settings, file); + iterator = new IfcGeom::Iterator(settings, file); has_more = iterator->initialize(); More(has_more).write(std::cout); @@ -509,7 +586,7 @@ int main () { exit_code = 1; break; } - const IfcGeom::TriangulationElement* geom = static_cast*>(iterator->get()); + const IfcGeom::TriangulationElement* geom = static_cast*>(iterator->get()); std::unique_ptr eext; if (emit_quantities) { eext.reset(new QuantityWriter_v1(iterator->get_native())); diff --git a/src/ifcmax/CMakeLists.txt b/src/ifcmax/CMakeLists.txt index c9096f846f..7db41dc2e1 100644 --- a/src/ifcmax/CMakeLists.txt +++ b/src/ifcmax/CMakeLists.txt @@ -16,25 +16,32 @@ # along with this program. If not, see . # # # ################################################################################ +foreach(max_year RANGE 2014 2030) + +set(max_sdk "$ENV{ADSK_3DSMAX_SDK_${max_year}}") +if (NOT "${max_sdk}" STREQUAL "") INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS} ${ICU_INCLUDE_DIR} - ${Boost_INCLUDE_DIRS} ${THREEDS_MAX_SDK_HOME}/include + ${Boost_INCLUDE_DIRS} ${max_sdk}/include ) # All recent versions of 3ds Max (2014 and newer) are 64-bit only so assume lib/x64 directory LINK_DIRECTORIES(${LINK_DIRECTORIES} ${IfcOpenShell_BINARY_DIR} ${OCC_LIBRARY_DIR} ${OPENCOLLADA_LIBRARY_DIR} - ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ${THREEDS_MAX_SDK_HOME}/lib/x64/Release + ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ${max_sdk}/lib/x64/Release ) -ADD_LIBRARY(IfcMax SHARED IfcMax.h IfcMax.cpp) +ADD_LIBRARY(IfcMax_${max_year} SHARED IfcMax.h IfcMax.cpp) # TODO: find the minimal subset of 3dsmax libraries to reference -TARGET_LINK_LIBRARIES(IfcMax ${IFCOPENSHELL_LIBRARIES} Comctl32.lib zlibdll.lib bmm.lib core.lib CustDlg.lib edmodel.lib expr.lib +TARGET_LINK_LIBRARIES(IfcMax_${max_year} ${IFCOPENSHELL_LIBRARIES} Comctl32.lib zlibdll.lib bmm.lib core.lib CustDlg.lib edmodel.lib expr.lib flt.lib geom.lib gfx.lib gup.lib imageViewers.lib ManipSys.lib maxnet.lib Maxscrpt.lib maxutil.lib MenuMan.lib menus.lib mesh.lib MNMath.lib Paramblk2.lib particle.lib Poly.lib RenderUtil.lib tessint.lib viewfile.lib ${OPENCASCADE_LIBRARIES} ) -SET_TARGET_PROPERTIES(IfcMax PROPERTIES SUFFIX ".dli") +SET_TARGET_PROPERTIES(IfcMax_${max_year} PROPERTIES SUFFIX ".dli") -INSTALL(TARGETS IfcMax RUNTIME DESTINATION ${BINDIR}) +INSTALL(TARGETS IfcMax_${max_year} RUNTIME DESTINATION ${BINDIR}) + +endif() +endforeach() \ No newline at end of file diff --git a/src/ifcmax/IfcMax.cpp b/src/ifcmax/IfcMax.cpp index 64017f5501..6252e97353 100644 --- a/src/ifcmax/IfcMax.cpp +++ b/src/ifcmax/IfcMax.cpp @@ -24,7 +24,10 @@ #include #include "IfcMax.h" -#include "../ifcgeom/IfcGeomIterator.h" + +#include "../ifcgeom_schema_agnostic/IfcGeomIterator.h" +#include "../ifcgeom_schema_agnostic/IfcGeomMaterial.h" +#include "../ifcgeom/IfcGeomElement.h" static const int NUM_MATERIAL_SLOTS = 24; @@ -226,7 +229,8 @@ int IFCImp::DoImport(const TCHAR *name, ImpInterface *impitfc, Interface *itfc, const char* fn_mb = name; #endif - IfcGeom::Iterator iterator(settings, fn_mb); + IfcParse::IfcFile file(fn_mb); + IfcGeom::Iterator iterator(settings, &file); delete fn_mb; if (!iterator.initialize()) return false; diff --git a/src/ifcopenshell-python/ifcopenshell/mvd b/src/ifcopenshell-python/ifcopenshell/mvd new file mode 160000 index 0000000000..6c4c5afc21 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/mvd @@ -0,0 +1 @@ +Subproject commit 6c4c5afc217e4d39774e2e7025fb80e8685a42f2 diff --git a/src/ifcopenshell-python/ifcopenshell/validate.py b/src/ifcopenshell-python/ifcopenshell/validate.py new file mode 100644 index 0000000000..22e0346eb6 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/validate.py @@ -0,0 +1,103 @@ +from __future__ import print_function + +import ifcopenshell + +named_type = ifcopenshell.ifcopenshell_wrapper.named_type +aggregation_type = ifcopenshell.ifcopenshell_wrapper.aggregation_type +simple_type = ifcopenshell.ifcopenshell_wrapper.simple_type +type_declaration = ifcopenshell.ifcopenshell_wrapper.type_declaration +enumeration_type = ifcopenshell.ifcopenshell_wrapper.enumeration_type +entity_type = ifcopenshell.ifcopenshell_wrapper.entity +select_type = ifcopenshell.ifcopenshell_wrapper.select_type +attribute = ifcopenshell.ifcopenshell_wrapper.attribute + +class ValidationError(Exception): pass + +simple_type_python_mapping = { + "string": str, + "integer": int, + "real": float, + "number": float, + "boolean": bool, + "logical": bool, # still not implemented in IfcOpenShell + "binary": str # maps to a str of "0" and "1" +} + +def assert_valid_inverse(attr, val): + b1, b2 = attr.bound1(), attr.bound2() + invalid = len(val) < b1 or (b2 != -1 and len(val) > b2) + if invalid: + raise ValidationError("%r not valid for %s" % (val, attr)) + return True + +def assert_valid(attr, val): + if isinstance(attr, attribute): + attr_type = attr.type_of_attribute() + else: + attr_type = attr + + type_wrappers = (named_type,) + if not isinstance(val, ifcopenshell.entity_instance): + # If val is not an entity instance we need to + # flatten the type declaration to something that + # maps to the python types + type_wrappers += (type_declaration,) + + while isinstance(attr_type, type_wrappers): + attr_type = attr_type.declared_type() + + if isinstance(attr_type, simple_type): + invalid = type(val) != simple_type_python_mapping[attr_type.declared_type()] + elif isinstance(attr_type, (entity_type, type_declaration)): + invalid = not isinstance(val, ifcopenshell.entity_instance) or not val.is_a(attr_type.name()) + elif isinstance(attr_type, select_type): + invalid = not any(try_valid(x, val) for x in attr_type.select_list()) + elif isinstance(attr_type, enumeration_type): + invalid = val not in attr_type.enumeration_items() + elif isinstance(attr_type, aggregation_type): + b1, b2 = attr_type.bound1(), attr_type.bound2() + ty = attr_type.type_of_element() + invalid = len(val) < b1 or (b2 != -1 and len(val) > b2) or not all(assert_valid(ty, v) for v in val) + else: + raise NotImplementedError("Not impl %s %s" % (type(attr_type), attr_type)) + + if invalid: + raise ValidationError("%r not valid for %s" % (val, attr)) + + return True + +def try_valid(attr, val): + try: + return assert_valid(attr, val) + except ValidationError as e: + return False + +def validate(f): + schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(f.schema) + for inst in f: + entity = schema.declaration_by_name(inst.is_a()) + + for attr, val, is_derived in zip(entity.all_attributes(), inst, entity.derived()): + + if val is None and not (is_derived or attr.optional()): + raise Exception("Attribute %s.%s not optional" % (entity, attr)) + + if val is not None: + attr_type = attr.type_of_attribute() + try: + assert_valid(attr, val) + except ValidationError as e: + print("In", inst) + print(e) + print() + + for attr in entity.all_inverse_attributes(): + val = getattr(inst, attr.name()) + assert_valid_inverse(attr, val) + +if __name__ == "__main__": + import sys + + for fn in sys.argv[1:]: + print("Validating", fn) + validate(ifcopenshell.open(fn)) diff --git a/src/ifcparse/Argument.h b/src/ifcparse/Argument.h index ef7787ac52..bcb1227dd0 100644 --- a/src/ifcparse/Argument.h +++ b/src/ifcparse/Argument.h @@ -52,10 +52,6 @@ namespace IfcUtil { IFC_PARSE_API const char* ArgumentTypeToString(ArgumentType argument_type); IFC_PARSE_API bool valid_binary_string(const std::string& s); - /// Replaces spaces and potentially other problem causing characters with underscores. - IFC_PARSE_API void sanitate_material_name(std::string &str); - IFC_PARSE_API void escape_xml(std::string &str); - IFC_PARSE_API void unescape_xml(std::string &str); } class IFC_PARSE_API Argument { diff --git a/src/ifcparse/Ifc2x3-schema.cpp b/src/ifcparse/Ifc2x3-schema.cpp index 845c869bf2..4ba3abb266 100644 --- a/src/ifcparse/Ifc2x3-schema.cpp +++ b/src/ifcparse/Ifc2x3-schema.cpp @@ -3880,162 +3880,162 @@ IfcParse::schema_definition* IFC2X3_populate_schema() { IFC2X3_IfcWorkControlTypeEnum_type = new enumeration_type("IfcWorkControlTypeEnum", 974, items); } IFC2X3_IfcYearNumber_type = new type_declaration("IfcYearNumber", 977, new simple_type(simple_type::integer_type)); - IFC2X3_IfcActorRole_type = new entity("IfcActorRole", 7, 0); - IFC2X3_IfcAddress_type = new entity("IfcAddress", 11, 0); - IFC2X3_IfcApplication_type = new entity("IfcApplication", 36, 0); - IFC2X3_IfcAppliedValue_type = new entity("IfcAppliedValue", 37, 0); - IFC2X3_IfcAppliedValueRelationship_type = new entity("IfcAppliedValueRelationship", 38, 0); - IFC2X3_IfcApproval_type = new entity("IfcApproval", 40, 0); - IFC2X3_IfcApprovalActorRelationship_type = new entity("IfcApprovalActorRelationship", 41, 0); - IFC2X3_IfcApprovalPropertyRelationship_type = new entity("IfcApprovalPropertyRelationship", 42, 0); - IFC2X3_IfcApprovalRelationship_type = new entity("IfcApprovalRelationship", 43, 0); - IFC2X3_IfcBoundaryCondition_type = new entity("IfcBoundaryCondition", 70, 0); - IFC2X3_IfcBoundaryEdgeCondition_type = new entity("IfcBoundaryEdgeCondition", 71, IFC2X3_IfcBoundaryCondition_type); - IFC2X3_IfcBoundaryFaceCondition_type = new entity("IfcBoundaryFaceCondition", 72, IFC2X3_IfcBoundaryCondition_type); - IFC2X3_IfcBoundaryNodeCondition_type = new entity("IfcBoundaryNodeCondition", 73, IFC2X3_IfcBoundaryCondition_type); - IFC2X3_IfcBoundaryNodeConditionWarping_type = new entity("IfcBoundaryNodeConditionWarping", 74, IFC2X3_IfcBoundaryNodeCondition_type); - IFC2X3_IfcCalendarDate_type = new entity("IfcCalendarDate", 97, 0); - IFC2X3_IfcClassification_type = new entity("IfcClassification", 113, 0); - IFC2X3_IfcClassificationItem_type = new entity("IfcClassificationItem", 114, 0); - IFC2X3_IfcClassificationItemRelationship_type = new entity("IfcClassificationItemRelationship", 115, 0); - IFC2X3_IfcClassificationNotation_type = new entity("IfcClassificationNotation", 116, 0); - IFC2X3_IfcClassificationNotationFacet_type = new entity("IfcClassificationNotationFacet", 117, 0); - IFC2X3_IfcColourSpecification_type = new entity("IfcColourSpecification", 126, 0); - IFC2X3_IfcConnectionGeometry_type = new entity("IfcConnectionGeometry", 146, 0); - IFC2X3_IfcConnectionPointGeometry_type = new entity("IfcConnectionPointGeometry", 148, IFC2X3_IfcConnectionGeometry_type); - IFC2X3_IfcConnectionPortGeometry_type = new entity("IfcConnectionPortGeometry", 149, IFC2X3_IfcConnectionGeometry_type); - IFC2X3_IfcConnectionSurfaceGeometry_type = new entity("IfcConnectionSurfaceGeometry", 150, IFC2X3_IfcConnectionGeometry_type); - IFC2X3_IfcConstraint_type = new entity("IfcConstraint", 152, 0); - IFC2X3_IfcConstraintAggregationRelationship_type = new entity("IfcConstraintAggregationRelationship", 153, 0); - IFC2X3_IfcConstraintClassificationRelationship_type = new entity("IfcConstraintClassificationRelationship", 154, 0); - IFC2X3_IfcConstraintRelationship_type = new entity("IfcConstraintRelationship", 156, 0); - IFC2X3_IfcCoordinatedUniversalTimeOffset_type = new entity("IfcCoordinatedUniversalTimeOffset", 171, 0); - IFC2X3_IfcCostValue_type = new entity("IfcCostValue", 175, IFC2X3_IfcAppliedValue_type); - IFC2X3_IfcCurrencyRelationship_type = new entity("IfcCurrencyRelationship", 188, 0); - IFC2X3_IfcCurveStyleFont_type = new entity("IfcCurveStyleFont", 198, 0); - IFC2X3_IfcCurveStyleFontAndScaling_type = new entity("IfcCurveStyleFontAndScaling", 199, 0); - IFC2X3_IfcCurveStyleFontPattern_type = new entity("IfcCurveStyleFontPattern", 200, 0); - IFC2X3_IfcDateAndTime_type = new entity("IfcDateAndTime", 205, 0); - IFC2X3_IfcDerivedUnit_type = new entity("IfcDerivedUnit", 213, 0); - IFC2X3_IfcDerivedUnitElement_type = new entity("IfcDerivedUnitElement", 214, 0); - IFC2X3_IfcDimensionalExponents_type = new entity("IfcDimensionalExponents", 218, 0); - IFC2X3_IfcDocumentElectronicFormat_type = new entity("IfcDocumentElectronicFormat", 241, 0); - IFC2X3_IfcDocumentInformation_type = new entity("IfcDocumentInformation", 242, 0); - IFC2X3_IfcDocumentInformationRelationship_type = new entity("IfcDocumentInformationRelationship", 243, 0); - IFC2X3_IfcDraughtingCalloutRelationship_type = new entity("IfcDraughtingCalloutRelationship", 258, 0); - IFC2X3_IfcEnvironmentalImpactValue_type = new entity("IfcEnvironmentalImpactValue", 314, IFC2X3_IfcAppliedValue_type); - IFC2X3_IfcExternalReference_type = new entity("IfcExternalReference", 326, 0); - IFC2X3_IfcExternallyDefinedHatchStyle_type = new entity("IfcExternallyDefinedHatchStyle", 322, IFC2X3_IfcExternalReference_type); - IFC2X3_IfcExternallyDefinedSurfaceStyle_type = new entity("IfcExternallyDefinedSurfaceStyle", 323, IFC2X3_IfcExternalReference_type); - IFC2X3_IfcExternallyDefinedSymbol_type = new entity("IfcExternallyDefinedSymbol", 324, IFC2X3_IfcExternalReference_type); - IFC2X3_IfcExternallyDefinedTextFont_type = new entity("IfcExternallyDefinedTextFont", 325, IFC2X3_IfcExternalReference_type); - IFC2X3_IfcGridAxis_type = new entity("IfcGridAxis", 399, 0); - IFC2X3_IfcIrregularTimeSeriesValue_type = new entity("IfcIrregularTimeSeriesValue", 423, 0); - IFC2X3_IfcLibraryInformation_type = new entity("IfcLibraryInformation", 436, 0); - IFC2X3_IfcLibraryReference_type = new entity("IfcLibraryReference", 437, IFC2X3_IfcExternalReference_type); - IFC2X3_IfcLightDistributionData_type = new entity("IfcLightDistributionData", 440, 0); - IFC2X3_IfcLightIntensityDistribution_type = new entity("IfcLightIntensityDistribution", 445, 0); - IFC2X3_IfcLocalTime_type = new entity("IfcLocalTime", 460, 0); - IFC2X3_IfcMaterial_type = new entity("IfcMaterial", 476, 0); - IFC2X3_IfcMaterialClassificationRelationship_type = new entity("IfcMaterialClassificationRelationship", 477, 0); - IFC2X3_IfcMaterialLayer_type = new entity("IfcMaterialLayer", 479, 0); - IFC2X3_IfcMaterialLayerSet_type = new entity("IfcMaterialLayerSet", 480, 0); - IFC2X3_IfcMaterialLayerSetUsage_type = new entity("IfcMaterialLayerSetUsage", 481, 0); - IFC2X3_IfcMaterialList_type = new entity("IfcMaterialList", 482, 0); - IFC2X3_IfcMaterialProperties_type = new entity("IfcMaterialProperties", 483, 0); - IFC2X3_IfcMeasureWithUnit_type = new entity("IfcMeasureWithUnit", 486, 0); - IFC2X3_IfcMechanicalMaterialProperties_type = new entity("IfcMechanicalMaterialProperties", 490, IFC2X3_IfcMaterialProperties_type); - IFC2X3_IfcMechanicalSteelMaterialProperties_type = new entity("IfcMechanicalSteelMaterialProperties", 491, IFC2X3_IfcMechanicalMaterialProperties_type); - IFC2X3_IfcMetric_type = new entity("IfcMetric", 495, IFC2X3_IfcConstraint_type); - IFC2X3_IfcMonetaryUnit_type = new entity("IfcMonetaryUnit", 506, 0); - IFC2X3_IfcNamedUnit_type = new entity("IfcNamedUnit", 511, 0); - IFC2X3_IfcObjectPlacement_type = new entity("IfcObjectPlacement", 519, 0); - IFC2X3_IfcObjective_type = new entity("IfcObjective", 517, IFC2X3_IfcConstraint_type); - IFC2X3_IfcOpticalMaterialProperties_type = new entity("IfcOpticalMaterialProperties", 529, IFC2X3_IfcMaterialProperties_type); - IFC2X3_IfcOrganization_type = new entity("IfcOrganization", 531, 0); - IFC2X3_IfcOrganizationRelationship_type = new entity("IfcOrganizationRelationship", 532, 0); - IFC2X3_IfcOwnerHistory_type = new entity("IfcOwnerHistory", 537, 0); - IFC2X3_IfcPerson_type = new entity("IfcPerson", 545, 0); - IFC2X3_IfcPersonAndOrganization_type = new entity("IfcPersonAndOrganization", 546, 0); - IFC2X3_IfcPhysicalQuantity_type = new entity("IfcPhysicalQuantity", 550, 0); - IFC2X3_IfcPhysicalSimpleQuantity_type = new entity("IfcPhysicalSimpleQuantity", 551, IFC2X3_IfcPhysicalQuantity_type); - IFC2X3_IfcPostalAddress_type = new entity("IfcPostalAddress", 580, IFC2X3_IfcAddress_type); - IFC2X3_IfcPreDefinedItem_type = new entity("IfcPreDefinedItem", 585, 0); - IFC2X3_IfcPreDefinedSymbol_type = new entity("IfcPreDefinedSymbol", 587, IFC2X3_IfcPreDefinedItem_type); - IFC2X3_IfcPreDefinedTerminatorSymbol_type = new entity("IfcPreDefinedTerminatorSymbol", 588, IFC2X3_IfcPreDefinedSymbol_type); - IFC2X3_IfcPreDefinedTextFont_type = new entity("IfcPreDefinedTextFont", 589, IFC2X3_IfcPreDefinedItem_type); - IFC2X3_IfcPresentationLayerAssignment_type = new entity("IfcPresentationLayerAssignment", 591, 0); - IFC2X3_IfcPresentationLayerWithStyle_type = new entity("IfcPresentationLayerWithStyle", 592, IFC2X3_IfcPresentationLayerAssignment_type); - IFC2X3_IfcPresentationStyle_type = new entity("IfcPresentationStyle", 593, 0); - IFC2X3_IfcPresentationStyleAssignment_type = new entity("IfcPresentationStyleAssignment", 594, 0); - IFC2X3_IfcProductRepresentation_type = new entity("IfcProductRepresentation", 602, 0); - IFC2X3_IfcProductsOfCombustionProperties_type = new entity("IfcProductsOfCombustionProperties", 603, IFC2X3_IfcMaterialProperties_type); - IFC2X3_IfcProfileDef_type = new entity("IfcProfileDef", 604, 0); - IFC2X3_IfcProfileProperties_type = new entity("IfcProfileProperties", 605, 0); - IFC2X3_IfcProperty_type = new entity("IfcProperty", 615, 0); - IFC2X3_IfcPropertyConstraintRelationship_type = new entity("IfcPropertyConstraintRelationship", 617, 0); - IFC2X3_IfcPropertyDependencyRelationship_type = new entity("IfcPropertyDependencyRelationship", 619, 0); - IFC2X3_IfcPropertyEnumeration_type = new entity("IfcPropertyEnumeration", 621, 0); - IFC2X3_IfcQuantityArea_type = new entity("IfcQuantityArea", 634, IFC2X3_IfcPhysicalSimpleQuantity_type); - IFC2X3_IfcQuantityCount_type = new entity("IfcQuantityCount", 635, IFC2X3_IfcPhysicalSimpleQuantity_type); - IFC2X3_IfcQuantityLength_type = new entity("IfcQuantityLength", 636, IFC2X3_IfcPhysicalSimpleQuantity_type); - IFC2X3_IfcQuantityTime_type = new entity("IfcQuantityTime", 637, IFC2X3_IfcPhysicalSimpleQuantity_type); - IFC2X3_IfcQuantityVolume_type = new entity("IfcQuantityVolume", 638, IFC2X3_IfcPhysicalSimpleQuantity_type); - IFC2X3_IfcQuantityWeight_type = new entity("IfcQuantityWeight", 639, IFC2X3_IfcPhysicalSimpleQuantity_type); - IFC2X3_IfcReferencesValueDocument_type = new entity("IfcReferencesValueDocument", 657, 0); - IFC2X3_IfcReinforcementBarProperties_type = new entity("IfcReinforcementBarProperties", 660, 0); - IFC2X3_IfcRelaxation_type = new entity("IfcRelaxation", 687, 0); - IFC2X3_IfcRepresentation_type = new entity("IfcRepresentation", 718, 0); - IFC2X3_IfcRepresentationContext_type = new entity("IfcRepresentationContext", 719, 0); - IFC2X3_IfcRepresentationItem_type = new entity("IfcRepresentationItem", 720, 0); - IFC2X3_IfcRepresentationMap_type = new entity("IfcRepresentationMap", 721, 0); - IFC2X3_IfcRibPlateProfileProperties_type = new entity("IfcRibPlateProfileProperties", 726, IFC2X3_IfcProfileProperties_type); - IFC2X3_IfcRoot_type = new entity("IfcRoot", 732, 0); - IFC2X3_IfcSIUnit_type = new entity("IfcSIUnit", 765, IFC2X3_IfcNamedUnit_type); - IFC2X3_IfcSectionProperties_type = new entity("IfcSectionProperties", 745, 0); - IFC2X3_IfcSectionReinforcementProperties_type = new entity("IfcSectionReinforcementProperties", 746, 0); - IFC2X3_IfcShapeAspect_type = new entity("IfcShapeAspect", 755, 0); - IFC2X3_IfcShapeModel_type = new entity("IfcShapeModel", 756, IFC2X3_IfcRepresentation_type); - IFC2X3_IfcShapeRepresentation_type = new entity("IfcShapeRepresentation", 757, IFC2X3_IfcShapeModel_type); - IFC2X3_IfcSimpleProperty_type = new entity("IfcSimpleProperty", 761, IFC2X3_IfcProperty_type); - IFC2X3_IfcStructuralConnectionCondition_type = new entity("IfcStructuralConnectionCondition", 806, 0); - IFC2X3_IfcStructuralLoad_type = new entity("IfcStructuralLoad", 814, 0); - IFC2X3_IfcStructuralLoadStatic_type = new entity("IfcStructuralLoadStatic", 822, IFC2X3_IfcStructuralLoad_type); - IFC2X3_IfcStructuralLoadTemperature_type = new entity("IfcStructuralLoadTemperature", 823, IFC2X3_IfcStructuralLoadStatic_type); - IFC2X3_IfcStyleModel_type = new entity("IfcStyleModel", 841, IFC2X3_IfcRepresentation_type); - IFC2X3_IfcStyledItem_type = new entity("IfcStyledItem", 839, IFC2X3_IfcRepresentationItem_type); - IFC2X3_IfcStyledRepresentation_type = new entity("IfcStyledRepresentation", 840, IFC2X3_IfcStyleModel_type); - IFC2X3_IfcSurfaceStyle_type = new entity("IfcSurfaceStyle", 850, IFC2X3_IfcPresentationStyle_type); - IFC2X3_IfcSurfaceStyleLighting_type = new entity("IfcSurfaceStyleLighting", 852, 0); - IFC2X3_IfcSurfaceStyleRefraction_type = new entity("IfcSurfaceStyleRefraction", 853, 0); - IFC2X3_IfcSurfaceStyleShading_type = new entity("IfcSurfaceStyleShading", 855, 0); - IFC2X3_IfcSurfaceStyleWithTextures_type = new entity("IfcSurfaceStyleWithTextures", 856, 0); - IFC2X3_IfcSurfaceTexture_type = new entity("IfcSurfaceTexture", 857, 0); - IFC2X3_IfcSymbolStyle_type = new entity("IfcSymbolStyle", 864, IFC2X3_IfcPresentationStyle_type); - IFC2X3_IfcTable_type = new entity("IfcTable", 868, 0); - IFC2X3_IfcTableRow_type = new entity("IfcTableRow", 869, 0); - IFC2X3_IfcTelecomAddress_type = new entity("IfcTelecomAddress", 873, IFC2X3_IfcAddress_type); - IFC2X3_IfcTextStyle_type = new entity("IfcTextStyle", 887, IFC2X3_IfcPresentationStyle_type); - IFC2X3_IfcTextStyleFontModel_type = new entity("IfcTextStyleFontModel", 888, IFC2X3_IfcPreDefinedTextFont_type); - IFC2X3_IfcTextStyleForDefinedFont_type = new entity("IfcTextStyleForDefinedFont", 889, 0); - IFC2X3_IfcTextStyleTextModel_type = new entity("IfcTextStyleTextModel", 891, 0); - IFC2X3_IfcTextStyleWithBoxCharacteristics_type = new entity("IfcTextStyleWithBoxCharacteristics", 892, 0); - IFC2X3_IfcTextureCoordinate_type = new entity("IfcTextureCoordinate", 894, 0); - IFC2X3_IfcTextureCoordinateGenerator_type = new entity("IfcTextureCoordinateGenerator", 895, IFC2X3_IfcTextureCoordinate_type); - IFC2X3_IfcTextureMap_type = new entity("IfcTextureMap", 896, IFC2X3_IfcTextureCoordinate_type); - IFC2X3_IfcTextureVertex_type = new entity("IfcTextureVertex", 897, 0); - IFC2X3_IfcThermalMaterialProperties_type = new entity("IfcThermalMaterialProperties", 903, IFC2X3_IfcMaterialProperties_type); - IFC2X3_IfcTimeSeries_type = new entity("IfcTimeSeries", 908, 0); - IFC2X3_IfcTimeSeriesReferenceRelationship_type = new entity("IfcTimeSeriesReferenceRelationship", 910, 0); - IFC2X3_IfcTimeSeriesValue_type = new entity("IfcTimeSeriesValue", 913, 0); - IFC2X3_IfcTopologicalRepresentationItem_type = new entity("IfcTopologicalRepresentationItem", 915, IFC2X3_IfcRepresentationItem_type); - IFC2X3_IfcTopologyRepresentation_type = new entity("IfcTopologyRepresentation", 916, IFC2X3_IfcShapeModel_type); - IFC2X3_IfcUnitAssignment_type = new entity("IfcUnitAssignment", 937, 0); - IFC2X3_IfcVertex_type = new entity("IfcVertex", 946, IFC2X3_IfcTopologicalRepresentationItem_type); - IFC2X3_IfcVertexBasedTextureMap_type = new entity("IfcVertexBasedTextureMap", 947, 0); - IFC2X3_IfcVertexPoint_type = new entity("IfcVertexPoint", 949, IFC2X3_IfcVertex_type); - IFC2X3_IfcVirtualGridIntersection_type = new entity("IfcVirtualGridIntersection", 953, 0); - IFC2X3_IfcWaterProperties_type = new entity("IfcWaterProperties", 964, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcActorRole_type = new entity("IfcActorRole", false, 7, 0); + IFC2X3_IfcAddress_type = new entity("IfcAddress", true, 11, 0); + IFC2X3_IfcApplication_type = new entity("IfcApplication", false, 36, 0); + IFC2X3_IfcAppliedValue_type = new entity("IfcAppliedValue", true, 37, 0); + IFC2X3_IfcAppliedValueRelationship_type = new entity("IfcAppliedValueRelationship", false, 38, 0); + IFC2X3_IfcApproval_type = new entity("IfcApproval", false, 40, 0); + IFC2X3_IfcApprovalActorRelationship_type = new entity("IfcApprovalActorRelationship", false, 41, 0); + IFC2X3_IfcApprovalPropertyRelationship_type = new entity("IfcApprovalPropertyRelationship", false, 42, 0); + IFC2X3_IfcApprovalRelationship_type = new entity("IfcApprovalRelationship", false, 43, 0); + IFC2X3_IfcBoundaryCondition_type = new entity("IfcBoundaryCondition", true, 70, 0); + IFC2X3_IfcBoundaryEdgeCondition_type = new entity("IfcBoundaryEdgeCondition", false, 71, IFC2X3_IfcBoundaryCondition_type); + IFC2X3_IfcBoundaryFaceCondition_type = new entity("IfcBoundaryFaceCondition", false, 72, IFC2X3_IfcBoundaryCondition_type); + IFC2X3_IfcBoundaryNodeCondition_type = new entity("IfcBoundaryNodeCondition", false, 73, IFC2X3_IfcBoundaryCondition_type); + IFC2X3_IfcBoundaryNodeConditionWarping_type = new entity("IfcBoundaryNodeConditionWarping", false, 74, IFC2X3_IfcBoundaryNodeCondition_type); + IFC2X3_IfcCalendarDate_type = new entity("IfcCalendarDate", false, 97, 0); + IFC2X3_IfcClassification_type = new entity("IfcClassification", false, 113, 0); + IFC2X3_IfcClassificationItem_type = new entity("IfcClassificationItem", false, 114, 0); + IFC2X3_IfcClassificationItemRelationship_type = new entity("IfcClassificationItemRelationship", false, 115, 0); + IFC2X3_IfcClassificationNotation_type = new entity("IfcClassificationNotation", false, 116, 0); + IFC2X3_IfcClassificationNotationFacet_type = new entity("IfcClassificationNotationFacet", false, 117, 0); + IFC2X3_IfcColourSpecification_type = new entity("IfcColourSpecification", true, 126, 0); + IFC2X3_IfcConnectionGeometry_type = new entity("IfcConnectionGeometry", true, 146, 0); + IFC2X3_IfcConnectionPointGeometry_type = new entity("IfcConnectionPointGeometry", false, 148, IFC2X3_IfcConnectionGeometry_type); + IFC2X3_IfcConnectionPortGeometry_type = new entity("IfcConnectionPortGeometry", false, 149, IFC2X3_IfcConnectionGeometry_type); + IFC2X3_IfcConnectionSurfaceGeometry_type = new entity("IfcConnectionSurfaceGeometry", false, 150, IFC2X3_IfcConnectionGeometry_type); + IFC2X3_IfcConstraint_type = new entity("IfcConstraint", true, 152, 0); + IFC2X3_IfcConstraintAggregationRelationship_type = new entity("IfcConstraintAggregationRelationship", false, 153, 0); + IFC2X3_IfcConstraintClassificationRelationship_type = new entity("IfcConstraintClassificationRelationship", false, 154, 0); + IFC2X3_IfcConstraintRelationship_type = new entity("IfcConstraintRelationship", false, 156, 0); + IFC2X3_IfcCoordinatedUniversalTimeOffset_type = new entity("IfcCoordinatedUniversalTimeOffset", false, 171, 0); + IFC2X3_IfcCostValue_type = new entity("IfcCostValue", false, 175, IFC2X3_IfcAppliedValue_type); + IFC2X3_IfcCurrencyRelationship_type = new entity("IfcCurrencyRelationship", false, 188, 0); + IFC2X3_IfcCurveStyleFont_type = new entity("IfcCurveStyleFont", false, 198, 0); + IFC2X3_IfcCurveStyleFontAndScaling_type = new entity("IfcCurveStyleFontAndScaling", false, 199, 0); + IFC2X3_IfcCurveStyleFontPattern_type = new entity("IfcCurveStyleFontPattern", false, 200, 0); + IFC2X3_IfcDateAndTime_type = new entity("IfcDateAndTime", false, 205, 0); + IFC2X3_IfcDerivedUnit_type = new entity("IfcDerivedUnit", false, 213, 0); + IFC2X3_IfcDerivedUnitElement_type = new entity("IfcDerivedUnitElement", false, 214, 0); + IFC2X3_IfcDimensionalExponents_type = new entity("IfcDimensionalExponents", false, 218, 0); + IFC2X3_IfcDocumentElectronicFormat_type = new entity("IfcDocumentElectronicFormat", false, 241, 0); + IFC2X3_IfcDocumentInformation_type = new entity("IfcDocumentInformation", false, 242, 0); + IFC2X3_IfcDocumentInformationRelationship_type = new entity("IfcDocumentInformationRelationship", false, 243, 0); + IFC2X3_IfcDraughtingCalloutRelationship_type = new entity("IfcDraughtingCalloutRelationship", false, 258, 0); + IFC2X3_IfcEnvironmentalImpactValue_type = new entity("IfcEnvironmentalImpactValue", false, 314, IFC2X3_IfcAppliedValue_type); + IFC2X3_IfcExternalReference_type = new entity("IfcExternalReference", true, 326, 0); + IFC2X3_IfcExternallyDefinedHatchStyle_type = new entity("IfcExternallyDefinedHatchStyle", false, 322, IFC2X3_IfcExternalReference_type); + IFC2X3_IfcExternallyDefinedSurfaceStyle_type = new entity("IfcExternallyDefinedSurfaceStyle", false, 323, IFC2X3_IfcExternalReference_type); + IFC2X3_IfcExternallyDefinedSymbol_type = new entity("IfcExternallyDefinedSymbol", false, 324, IFC2X3_IfcExternalReference_type); + IFC2X3_IfcExternallyDefinedTextFont_type = new entity("IfcExternallyDefinedTextFont", false, 325, IFC2X3_IfcExternalReference_type); + IFC2X3_IfcGridAxis_type = new entity("IfcGridAxis", false, 399, 0); + IFC2X3_IfcIrregularTimeSeriesValue_type = new entity("IfcIrregularTimeSeriesValue", false, 423, 0); + IFC2X3_IfcLibraryInformation_type = new entity("IfcLibraryInformation", false, 436, 0); + IFC2X3_IfcLibraryReference_type = new entity("IfcLibraryReference", false, 437, IFC2X3_IfcExternalReference_type); + IFC2X3_IfcLightDistributionData_type = new entity("IfcLightDistributionData", false, 440, 0); + IFC2X3_IfcLightIntensityDistribution_type = new entity("IfcLightIntensityDistribution", false, 445, 0); + IFC2X3_IfcLocalTime_type = new entity("IfcLocalTime", false, 460, 0); + IFC2X3_IfcMaterial_type = new entity("IfcMaterial", false, 476, 0); + IFC2X3_IfcMaterialClassificationRelationship_type = new entity("IfcMaterialClassificationRelationship", false, 477, 0); + IFC2X3_IfcMaterialLayer_type = new entity("IfcMaterialLayer", false, 479, 0); + IFC2X3_IfcMaterialLayerSet_type = new entity("IfcMaterialLayerSet", false, 480, 0); + IFC2X3_IfcMaterialLayerSetUsage_type = new entity("IfcMaterialLayerSetUsage", false, 481, 0); + IFC2X3_IfcMaterialList_type = new entity("IfcMaterialList", false, 482, 0); + IFC2X3_IfcMaterialProperties_type = new entity("IfcMaterialProperties", true, 483, 0); + IFC2X3_IfcMeasureWithUnit_type = new entity("IfcMeasureWithUnit", false, 486, 0); + IFC2X3_IfcMechanicalMaterialProperties_type = new entity("IfcMechanicalMaterialProperties", false, 490, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcMechanicalSteelMaterialProperties_type = new entity("IfcMechanicalSteelMaterialProperties", false, 491, IFC2X3_IfcMechanicalMaterialProperties_type); + IFC2X3_IfcMetric_type = new entity("IfcMetric", false, 495, IFC2X3_IfcConstraint_type); + IFC2X3_IfcMonetaryUnit_type = new entity("IfcMonetaryUnit", false, 506, 0); + IFC2X3_IfcNamedUnit_type = new entity("IfcNamedUnit", true, 511, 0); + IFC2X3_IfcObjectPlacement_type = new entity("IfcObjectPlacement", true, 519, 0); + IFC2X3_IfcObjective_type = new entity("IfcObjective", false, 517, IFC2X3_IfcConstraint_type); + IFC2X3_IfcOpticalMaterialProperties_type = new entity("IfcOpticalMaterialProperties", false, 529, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcOrganization_type = new entity("IfcOrganization", false, 531, 0); + IFC2X3_IfcOrganizationRelationship_type = new entity("IfcOrganizationRelationship", false, 532, 0); + IFC2X3_IfcOwnerHistory_type = new entity("IfcOwnerHistory", false, 537, 0); + IFC2X3_IfcPerson_type = new entity("IfcPerson", false, 545, 0); + IFC2X3_IfcPersonAndOrganization_type = new entity("IfcPersonAndOrganization", false, 546, 0); + IFC2X3_IfcPhysicalQuantity_type = new entity("IfcPhysicalQuantity", true, 550, 0); + IFC2X3_IfcPhysicalSimpleQuantity_type = new entity("IfcPhysicalSimpleQuantity", true, 551, IFC2X3_IfcPhysicalQuantity_type); + IFC2X3_IfcPostalAddress_type = new entity("IfcPostalAddress", false, 580, IFC2X3_IfcAddress_type); + IFC2X3_IfcPreDefinedItem_type = new entity("IfcPreDefinedItem", true, 585, 0); + IFC2X3_IfcPreDefinedSymbol_type = new entity("IfcPreDefinedSymbol", true, 587, IFC2X3_IfcPreDefinedItem_type); + IFC2X3_IfcPreDefinedTerminatorSymbol_type = new entity("IfcPreDefinedTerminatorSymbol", false, 588, IFC2X3_IfcPreDefinedSymbol_type); + IFC2X3_IfcPreDefinedTextFont_type = new entity("IfcPreDefinedTextFont", true, 589, IFC2X3_IfcPreDefinedItem_type); + IFC2X3_IfcPresentationLayerAssignment_type = new entity("IfcPresentationLayerAssignment", false, 591, 0); + IFC2X3_IfcPresentationLayerWithStyle_type = new entity("IfcPresentationLayerWithStyle", false, 592, IFC2X3_IfcPresentationLayerAssignment_type); + IFC2X3_IfcPresentationStyle_type = new entity("IfcPresentationStyle", true, 593, 0); + IFC2X3_IfcPresentationStyleAssignment_type = new entity("IfcPresentationStyleAssignment", false, 594, 0); + IFC2X3_IfcProductRepresentation_type = new entity("IfcProductRepresentation", false, 602, 0); + IFC2X3_IfcProductsOfCombustionProperties_type = new entity("IfcProductsOfCombustionProperties", false, 603, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcProfileDef_type = new entity("IfcProfileDef", true, 604, 0); + IFC2X3_IfcProfileProperties_type = new entity("IfcProfileProperties", true, 605, 0); + IFC2X3_IfcProperty_type = new entity("IfcProperty", true, 615, 0); + IFC2X3_IfcPropertyConstraintRelationship_type = new entity("IfcPropertyConstraintRelationship", false, 617, 0); + IFC2X3_IfcPropertyDependencyRelationship_type = new entity("IfcPropertyDependencyRelationship", false, 619, 0); + IFC2X3_IfcPropertyEnumeration_type = new entity("IfcPropertyEnumeration", false, 621, 0); + IFC2X3_IfcQuantityArea_type = new entity("IfcQuantityArea", false, 634, IFC2X3_IfcPhysicalSimpleQuantity_type); + IFC2X3_IfcQuantityCount_type = new entity("IfcQuantityCount", false, 635, IFC2X3_IfcPhysicalSimpleQuantity_type); + IFC2X3_IfcQuantityLength_type = new entity("IfcQuantityLength", false, 636, IFC2X3_IfcPhysicalSimpleQuantity_type); + IFC2X3_IfcQuantityTime_type = new entity("IfcQuantityTime", false, 637, IFC2X3_IfcPhysicalSimpleQuantity_type); + IFC2X3_IfcQuantityVolume_type = new entity("IfcQuantityVolume", false, 638, IFC2X3_IfcPhysicalSimpleQuantity_type); + IFC2X3_IfcQuantityWeight_type = new entity("IfcQuantityWeight", false, 639, IFC2X3_IfcPhysicalSimpleQuantity_type); + IFC2X3_IfcReferencesValueDocument_type = new entity("IfcReferencesValueDocument", false, 657, 0); + IFC2X3_IfcReinforcementBarProperties_type = new entity("IfcReinforcementBarProperties", false, 660, 0); + IFC2X3_IfcRelaxation_type = new entity("IfcRelaxation", false, 687, 0); + IFC2X3_IfcRepresentation_type = new entity("IfcRepresentation", false, 718, 0); + IFC2X3_IfcRepresentationContext_type = new entity("IfcRepresentationContext", false, 719, 0); + IFC2X3_IfcRepresentationItem_type = new entity("IfcRepresentationItem", true, 720, 0); + IFC2X3_IfcRepresentationMap_type = new entity("IfcRepresentationMap", false, 721, 0); + IFC2X3_IfcRibPlateProfileProperties_type = new entity("IfcRibPlateProfileProperties", false, 726, IFC2X3_IfcProfileProperties_type); + IFC2X3_IfcRoot_type = new entity("IfcRoot", true, 732, 0); + IFC2X3_IfcSIUnit_type = new entity("IfcSIUnit", false, 765, IFC2X3_IfcNamedUnit_type); + IFC2X3_IfcSectionProperties_type = new entity("IfcSectionProperties", false, 745, 0); + IFC2X3_IfcSectionReinforcementProperties_type = new entity("IfcSectionReinforcementProperties", false, 746, 0); + IFC2X3_IfcShapeAspect_type = new entity("IfcShapeAspect", false, 755, 0); + IFC2X3_IfcShapeModel_type = new entity("IfcShapeModel", true, 756, IFC2X3_IfcRepresentation_type); + IFC2X3_IfcShapeRepresentation_type = new entity("IfcShapeRepresentation", false, 757, IFC2X3_IfcShapeModel_type); + IFC2X3_IfcSimpleProperty_type = new entity("IfcSimpleProperty", true, 761, IFC2X3_IfcProperty_type); + IFC2X3_IfcStructuralConnectionCondition_type = new entity("IfcStructuralConnectionCondition", true, 806, 0); + IFC2X3_IfcStructuralLoad_type = new entity("IfcStructuralLoad", true, 814, 0); + IFC2X3_IfcStructuralLoadStatic_type = new entity("IfcStructuralLoadStatic", true, 822, IFC2X3_IfcStructuralLoad_type); + IFC2X3_IfcStructuralLoadTemperature_type = new entity("IfcStructuralLoadTemperature", false, 823, IFC2X3_IfcStructuralLoadStatic_type); + IFC2X3_IfcStyleModel_type = new entity("IfcStyleModel", true, 841, IFC2X3_IfcRepresentation_type); + IFC2X3_IfcStyledItem_type = new entity("IfcStyledItem", false, 839, IFC2X3_IfcRepresentationItem_type); + IFC2X3_IfcStyledRepresentation_type = new entity("IfcStyledRepresentation", false, 840, IFC2X3_IfcStyleModel_type); + IFC2X3_IfcSurfaceStyle_type = new entity("IfcSurfaceStyle", false, 850, IFC2X3_IfcPresentationStyle_type); + IFC2X3_IfcSurfaceStyleLighting_type = new entity("IfcSurfaceStyleLighting", false, 852, 0); + IFC2X3_IfcSurfaceStyleRefraction_type = new entity("IfcSurfaceStyleRefraction", false, 853, 0); + IFC2X3_IfcSurfaceStyleShading_type = new entity("IfcSurfaceStyleShading", false, 855, 0); + IFC2X3_IfcSurfaceStyleWithTextures_type = new entity("IfcSurfaceStyleWithTextures", false, 856, 0); + IFC2X3_IfcSurfaceTexture_type = new entity("IfcSurfaceTexture", true, 857, 0); + IFC2X3_IfcSymbolStyle_type = new entity("IfcSymbolStyle", false, 864, IFC2X3_IfcPresentationStyle_type); + IFC2X3_IfcTable_type = new entity("IfcTable", false, 868, 0); + IFC2X3_IfcTableRow_type = new entity("IfcTableRow", false, 869, 0); + IFC2X3_IfcTelecomAddress_type = new entity("IfcTelecomAddress", false, 873, IFC2X3_IfcAddress_type); + IFC2X3_IfcTextStyle_type = new entity("IfcTextStyle", false, 887, IFC2X3_IfcPresentationStyle_type); + IFC2X3_IfcTextStyleFontModel_type = new entity("IfcTextStyleFontModel", false, 888, IFC2X3_IfcPreDefinedTextFont_type); + IFC2X3_IfcTextStyleForDefinedFont_type = new entity("IfcTextStyleForDefinedFont", false, 889, 0); + IFC2X3_IfcTextStyleTextModel_type = new entity("IfcTextStyleTextModel", false, 891, 0); + IFC2X3_IfcTextStyleWithBoxCharacteristics_type = new entity("IfcTextStyleWithBoxCharacteristics", false, 892, 0); + IFC2X3_IfcTextureCoordinate_type = new entity("IfcTextureCoordinate", true, 894, 0); + IFC2X3_IfcTextureCoordinateGenerator_type = new entity("IfcTextureCoordinateGenerator", false, 895, IFC2X3_IfcTextureCoordinate_type); + IFC2X3_IfcTextureMap_type = new entity("IfcTextureMap", false, 896, IFC2X3_IfcTextureCoordinate_type); + IFC2X3_IfcTextureVertex_type = new entity("IfcTextureVertex", false, 897, 0); + IFC2X3_IfcThermalMaterialProperties_type = new entity("IfcThermalMaterialProperties", false, 903, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcTimeSeries_type = new entity("IfcTimeSeries", true, 908, 0); + IFC2X3_IfcTimeSeriesReferenceRelationship_type = new entity("IfcTimeSeriesReferenceRelationship", false, 910, 0); + IFC2X3_IfcTimeSeriesValue_type = new entity("IfcTimeSeriesValue", false, 913, 0); + IFC2X3_IfcTopologicalRepresentationItem_type = new entity("IfcTopologicalRepresentationItem", true, 915, IFC2X3_IfcRepresentationItem_type); + IFC2X3_IfcTopologyRepresentation_type = new entity("IfcTopologyRepresentation", false, 916, IFC2X3_IfcShapeModel_type); + IFC2X3_IfcUnitAssignment_type = new entity("IfcUnitAssignment", false, 937, 0); + IFC2X3_IfcVertex_type = new entity("IfcVertex", false, 946, IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcVertexBasedTextureMap_type = new entity("IfcVertexBasedTextureMap", false, 947, 0); + IFC2X3_IfcVertexPoint_type = new entity("IfcVertexPoint", false, 949, IFC2X3_IfcVertex_type); + IFC2X3_IfcVirtualGridIntersection_type = new entity("IfcVirtualGridIntersection", false, 953, 0); + IFC2X3_IfcWaterProperties_type = new entity("IfcWaterProperties", false, 964, IFC2X3_IfcMaterialProperties_type); { std::vector items; items.reserve(3); items.push_back(IFC2X3_IfcOrganization_type); @@ -4258,132 +4258,132 @@ IfcParse::schema_definition* IFC2X3_populate_schema() { items.push_back(IFC2X3_IfcNamedUnit_type); IFC2X3_IfcUnit_type = new select_type("IfcUnit", 934, items); } - IFC2X3_IfcAnnotationOccurrence_type = new entity("IfcAnnotationOccurrence", 31, IFC2X3_IfcStyledItem_type); - IFC2X3_IfcAnnotationSurfaceOccurrence_type = new entity("IfcAnnotationSurfaceOccurrence", 33, IFC2X3_IfcAnnotationOccurrence_type); - IFC2X3_IfcAnnotationSymbolOccurrence_type = new entity("IfcAnnotationSymbolOccurrence", 34, IFC2X3_IfcAnnotationOccurrence_type); - IFC2X3_IfcAnnotationTextOccurrence_type = new entity("IfcAnnotationTextOccurrence", 35, IFC2X3_IfcAnnotationOccurrence_type); - IFC2X3_IfcArbitraryClosedProfileDef_type = new entity("IfcArbitraryClosedProfileDef", 44, IFC2X3_IfcProfileDef_type); - IFC2X3_IfcArbitraryOpenProfileDef_type = new entity("IfcArbitraryOpenProfileDef", 45, IFC2X3_IfcProfileDef_type); - IFC2X3_IfcArbitraryProfileDefWithVoids_type = new entity("IfcArbitraryProfileDefWithVoids", 46, IFC2X3_IfcArbitraryClosedProfileDef_type); - IFC2X3_IfcBlobTexture_type = new entity("IfcBlobTexture", 61, IFC2X3_IfcSurfaceTexture_type); - IFC2X3_IfcCenterLineProfileDef_type = new entity("IfcCenterLineProfileDef", 104, IFC2X3_IfcArbitraryOpenProfileDef_type); - IFC2X3_IfcClassificationReference_type = new entity("IfcClassificationReference", 119, IFC2X3_IfcExternalReference_type); - IFC2X3_IfcColourRgb_type = new entity("IfcColourRgb", 125, IFC2X3_IfcColourSpecification_type); - IFC2X3_IfcComplexProperty_type = new entity("IfcComplexProperty", 131, IFC2X3_IfcProperty_type); - IFC2X3_IfcCompositeProfileDef_type = new entity("IfcCompositeProfileDef", 134, IFC2X3_IfcProfileDef_type); - IFC2X3_IfcConnectedFaceSet_type = new entity("IfcConnectedFaceSet", 144, IFC2X3_IfcTopologicalRepresentationItem_type); - IFC2X3_IfcConnectionCurveGeometry_type = new entity("IfcConnectionCurveGeometry", 145, IFC2X3_IfcConnectionGeometry_type); - IFC2X3_IfcConnectionPointEccentricity_type = new entity("IfcConnectionPointEccentricity", 147, IFC2X3_IfcConnectionPointGeometry_type); - IFC2X3_IfcContextDependentUnit_type = new entity("IfcContextDependentUnit", 162, IFC2X3_IfcNamedUnit_type); - IFC2X3_IfcConversionBasedUnit_type = new entity("IfcConversionBasedUnit", 166, IFC2X3_IfcNamedUnit_type); - IFC2X3_IfcCurveStyle_type = new entity("IfcCurveStyle", 197, IFC2X3_IfcPresentationStyle_type); - IFC2X3_IfcDerivedProfileDef_type = new entity("IfcDerivedProfileDef", 212, IFC2X3_IfcProfileDef_type); - IFC2X3_IfcDimensionCalloutRelationship_type = new entity("IfcDimensionCalloutRelationship", 219, IFC2X3_IfcDraughtingCalloutRelationship_type); - IFC2X3_IfcDimensionPair_type = new entity("IfcDimensionPair", 225, IFC2X3_IfcDraughtingCalloutRelationship_type); - IFC2X3_IfcDocumentReference_type = new entity("IfcDocumentReference", 244, IFC2X3_IfcExternalReference_type); - IFC2X3_IfcDraughtingPreDefinedTextFont_type = new entity("IfcDraughtingPreDefinedTextFont", 261, IFC2X3_IfcPreDefinedTextFont_type); - IFC2X3_IfcEdge_type = new entity("IfcEdge", 269, IFC2X3_IfcTopologicalRepresentationItem_type); - IFC2X3_IfcEdgeCurve_type = new entity("IfcEdgeCurve", 270, IFC2X3_IfcEdge_type); - IFC2X3_IfcExtendedMaterialProperties_type = new entity("IfcExtendedMaterialProperties", 321, IFC2X3_IfcMaterialProperties_type); - IFC2X3_IfcFace_type = new entity("IfcFace", 328, IFC2X3_IfcTopologicalRepresentationItem_type); - IFC2X3_IfcFaceBound_type = new entity("IfcFaceBound", 330, IFC2X3_IfcTopologicalRepresentationItem_type); - IFC2X3_IfcFaceOuterBound_type = new entity("IfcFaceOuterBound", 331, IFC2X3_IfcFaceBound_type); - IFC2X3_IfcFaceSurface_type = new entity("IfcFaceSurface", 332, IFC2X3_IfcFace_type); - IFC2X3_IfcFailureConnectionCondition_type = new entity("IfcFailureConnectionCondition", 335, IFC2X3_IfcStructuralConnectionCondition_type); - IFC2X3_IfcFillAreaStyle_type = new entity("IfcFillAreaStyle", 343, IFC2X3_IfcPresentationStyle_type); - IFC2X3_IfcFuelProperties_type = new entity("IfcFuelProperties", 380, IFC2X3_IfcMaterialProperties_type); - IFC2X3_IfcGeneralMaterialProperties_type = new entity("IfcGeneralMaterialProperties", 387, IFC2X3_IfcMaterialProperties_type); - IFC2X3_IfcGeneralProfileProperties_type = new entity("IfcGeneralProfileProperties", 388, IFC2X3_IfcProfileProperties_type); - IFC2X3_IfcGeometricRepresentationContext_type = new entity("IfcGeometricRepresentationContext", 391, IFC2X3_IfcRepresentationContext_type); - IFC2X3_IfcGeometricRepresentationItem_type = new entity("IfcGeometricRepresentationItem", 392, IFC2X3_IfcRepresentationItem_type); - IFC2X3_IfcGeometricRepresentationSubContext_type = new entity("IfcGeometricRepresentationSubContext", 393, IFC2X3_IfcGeometricRepresentationContext_type); - IFC2X3_IfcGeometricSet_type = new entity("IfcGeometricSet", 394, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcGridPlacement_type = new entity("IfcGridPlacement", 400, IFC2X3_IfcObjectPlacement_type); - IFC2X3_IfcHalfSpaceSolid_type = new entity("IfcHalfSpaceSolid", 402, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcHygroscopicMaterialProperties_type = new entity("IfcHygroscopicMaterialProperties", 411, IFC2X3_IfcMaterialProperties_type); - IFC2X3_IfcImageTexture_type = new entity("IfcImageTexture", 414, IFC2X3_IfcSurfaceTexture_type); - IFC2X3_IfcIrregularTimeSeries_type = new entity("IfcIrregularTimeSeries", 422, IFC2X3_IfcTimeSeries_type); - IFC2X3_IfcLightSource_type = new entity("IfcLightSource", 446, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcLightSourceAmbient_type = new entity("IfcLightSourceAmbient", 447, IFC2X3_IfcLightSource_type); - IFC2X3_IfcLightSourceDirectional_type = new entity("IfcLightSourceDirectional", 448, IFC2X3_IfcLightSource_type); - IFC2X3_IfcLightSourceGoniometric_type = new entity("IfcLightSourceGoniometric", 449, IFC2X3_IfcLightSource_type); - IFC2X3_IfcLightSourcePositional_type = new entity("IfcLightSourcePositional", 450, IFC2X3_IfcLightSource_type); - IFC2X3_IfcLightSourceSpot_type = new entity("IfcLightSourceSpot", 451, IFC2X3_IfcLightSourcePositional_type); - IFC2X3_IfcLocalPlacement_type = new entity("IfcLocalPlacement", 459, IFC2X3_IfcObjectPlacement_type); - IFC2X3_IfcLoop_type = new entity("IfcLoop", 463, IFC2X3_IfcTopologicalRepresentationItem_type); - IFC2X3_IfcMappedItem_type = new entity("IfcMappedItem", 471, IFC2X3_IfcRepresentationItem_type); - IFC2X3_IfcMaterialDefinitionRepresentation_type = new entity("IfcMaterialDefinitionRepresentation", 478, IFC2X3_IfcProductRepresentation_type); - IFC2X3_IfcMechanicalConcreteMaterialProperties_type = new entity("IfcMechanicalConcreteMaterialProperties", 487, IFC2X3_IfcMechanicalMaterialProperties_type); - IFC2X3_IfcObjectDefinition_type = new entity("IfcObjectDefinition", 516, IFC2X3_IfcRoot_type); - IFC2X3_IfcOneDirectionRepeatFactor_type = new entity("IfcOneDirectionRepeatFactor", 526, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcOpenShell_type = new entity("IfcOpenShell", 528, IFC2X3_IfcConnectedFaceSet_type); - IFC2X3_IfcOrientedEdge_type = new entity("IfcOrientedEdge", 534, IFC2X3_IfcEdge_type); - IFC2X3_IfcParameterizedProfileDef_type = new entity("IfcParameterizedProfileDef", 538, IFC2X3_IfcProfileDef_type); - IFC2X3_IfcPath_type = new entity("IfcPath", 540, IFC2X3_IfcTopologicalRepresentationItem_type); - IFC2X3_IfcPhysicalComplexQuantity_type = new entity("IfcPhysicalComplexQuantity", 548, IFC2X3_IfcPhysicalQuantity_type); - IFC2X3_IfcPixelTexture_type = new entity("IfcPixelTexture", 559, IFC2X3_IfcSurfaceTexture_type); - IFC2X3_IfcPlacement_type = new entity("IfcPlacement", 560, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcPlanarExtent_type = new entity("IfcPlanarExtent", 562, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcPoint_type = new entity("IfcPoint", 569, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcPointOnCurve_type = new entity("IfcPointOnCurve", 570, IFC2X3_IfcPoint_type); - IFC2X3_IfcPointOnSurface_type = new entity("IfcPointOnSurface", 571, IFC2X3_IfcPoint_type); - IFC2X3_IfcPolyLoop_type = new entity("IfcPolyLoop", 575, IFC2X3_IfcLoop_type); - IFC2X3_IfcPolygonalBoundedHalfSpace_type = new entity("IfcPolygonalBoundedHalfSpace", 573, IFC2X3_IfcHalfSpaceSolid_type); - IFC2X3_IfcPreDefinedColour_type = new entity("IfcPreDefinedColour", 582, IFC2X3_IfcPreDefinedItem_type); - IFC2X3_IfcPreDefinedCurveFont_type = new entity("IfcPreDefinedCurveFont", 583, IFC2X3_IfcPreDefinedItem_type); - IFC2X3_IfcPreDefinedDimensionSymbol_type = new entity("IfcPreDefinedDimensionSymbol", 584, IFC2X3_IfcPreDefinedSymbol_type); - IFC2X3_IfcPreDefinedPointMarkerSymbol_type = new entity("IfcPreDefinedPointMarkerSymbol", 586, IFC2X3_IfcPreDefinedSymbol_type); - IFC2X3_IfcProductDefinitionShape_type = new entity("IfcProductDefinitionShape", 601, IFC2X3_IfcProductRepresentation_type); - IFC2X3_IfcPropertyBoundedValue_type = new entity("IfcPropertyBoundedValue", 616, IFC2X3_IfcSimpleProperty_type); - IFC2X3_IfcPropertyDefinition_type = new entity("IfcPropertyDefinition", 618, IFC2X3_IfcRoot_type); - IFC2X3_IfcPropertyEnumeratedValue_type = new entity("IfcPropertyEnumeratedValue", 620, IFC2X3_IfcSimpleProperty_type); - IFC2X3_IfcPropertyListValue_type = new entity("IfcPropertyListValue", 622, IFC2X3_IfcSimpleProperty_type); - IFC2X3_IfcPropertyReferenceValue_type = new entity("IfcPropertyReferenceValue", 623, IFC2X3_IfcSimpleProperty_type); - IFC2X3_IfcPropertySetDefinition_type = new entity("IfcPropertySetDefinition", 625, IFC2X3_IfcPropertyDefinition_type); - IFC2X3_IfcPropertySingleValue_type = new entity("IfcPropertySingleValue", 626, IFC2X3_IfcSimpleProperty_type); - IFC2X3_IfcPropertyTableValue_type = new entity("IfcPropertyTableValue", 628, IFC2X3_IfcSimpleProperty_type); - IFC2X3_IfcRectangleProfileDef_type = new entity("IfcRectangleProfileDef", 654, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcRegularTimeSeries_type = new entity("IfcRegularTimeSeries", 659, IFC2X3_IfcTimeSeries_type); - IFC2X3_IfcReinforcementDefinitionProperties_type = new entity("IfcReinforcementDefinitionProperties", 661, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcRelationship_type = new entity("IfcRelationship", 686, IFC2X3_IfcRoot_type); - IFC2X3_IfcRoundedRectangleProfileDef_type = new entity("IfcRoundedRectangleProfileDef", 737, IFC2X3_IfcRectangleProfileDef_type); - IFC2X3_IfcSectionedSpine_type = new entity("IfcSectionedSpine", 743, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcServiceLifeFactor_type = new entity("IfcServiceLifeFactor", 752, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcShellBasedSurfaceModel_type = new entity("IfcShellBasedSurfaceModel", 760, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcSlippageConnectionCondition_type = new entity("IfcSlippageConnectionCondition", 771, IFC2X3_IfcStructuralConnectionCondition_type); - IFC2X3_IfcSolidModel_type = new entity("IfcSolidModel", 773, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcSoundProperties_type = new entity("IfcSoundProperties", 776, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcSoundValue_type = new entity("IfcSoundValue", 778, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcSpaceThermalLoadProperties_type = new entity("IfcSpaceThermalLoadProperties", 783, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcStructuralLoadLinearForce_type = new entity("IfcStructuralLoadLinearForce", 816, IFC2X3_IfcStructuralLoadStatic_type); - IFC2X3_IfcStructuralLoadPlanarForce_type = new entity("IfcStructuralLoadPlanarForce", 817, IFC2X3_IfcStructuralLoadStatic_type); - IFC2X3_IfcStructuralLoadSingleDisplacement_type = new entity("IfcStructuralLoadSingleDisplacement", 818, IFC2X3_IfcStructuralLoadStatic_type); - IFC2X3_IfcStructuralLoadSingleDisplacementDistortion_type = new entity("IfcStructuralLoadSingleDisplacementDistortion", 819, IFC2X3_IfcStructuralLoadSingleDisplacement_type); - IFC2X3_IfcStructuralLoadSingleForce_type = new entity("IfcStructuralLoadSingleForce", 820, IFC2X3_IfcStructuralLoadStatic_type); - IFC2X3_IfcStructuralLoadSingleForceWarping_type = new entity("IfcStructuralLoadSingleForceWarping", 821, IFC2X3_IfcStructuralLoadSingleForce_type); - IFC2X3_IfcStructuralProfileProperties_type = new entity("IfcStructuralProfileProperties", 830, IFC2X3_IfcGeneralProfileProperties_type); - IFC2X3_IfcStructuralSteelProfileProperties_type = new entity("IfcStructuralSteelProfileProperties", 833, IFC2X3_IfcStructuralProfileProperties_type); - IFC2X3_IfcSubedge_type = new entity("IfcSubedge", 843, IFC2X3_IfcEdge_type); - IFC2X3_IfcSurface_type = new entity("IfcSurface", 844, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcSurfaceStyleRendering_type = new entity("IfcSurfaceStyleRendering", 854, IFC2X3_IfcSurfaceStyleShading_type); - IFC2X3_IfcSweptAreaSolid_type = new entity("IfcSweptAreaSolid", 859, IFC2X3_IfcSolidModel_type); - IFC2X3_IfcSweptDiskSolid_type = new entity("IfcSweptDiskSolid", 860, IFC2X3_IfcSolidModel_type); - IFC2X3_IfcSweptSurface_type = new entity("IfcSweptSurface", 861, IFC2X3_IfcSurface_type); - IFC2X3_IfcTShapeProfileDef_type = new entity("IfcTShapeProfileDef", 928, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcTerminatorSymbol_type = new entity("IfcTerminatorSymbol", 878, IFC2X3_IfcAnnotationSymbolOccurrence_type); - IFC2X3_IfcTextLiteral_type = new entity("IfcTextLiteral", 884, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcTextLiteralWithExtent_type = new entity("IfcTextLiteralWithExtent", 885, IFC2X3_IfcTextLiteral_type); - IFC2X3_IfcTrapeziumProfileDef_type = new entity("IfcTrapeziumProfileDef", 924, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcTwoDirectionRepeatFactor_type = new entity("IfcTwoDirectionRepeatFactor", 931, IFC2X3_IfcOneDirectionRepeatFactor_type); - IFC2X3_IfcTypeObject_type = new entity("IfcTypeObject", 932, IFC2X3_IfcObjectDefinition_type); - IFC2X3_IfcTypeProduct_type = new entity("IfcTypeProduct", 933, IFC2X3_IfcTypeObject_type); - IFC2X3_IfcUShapeProfileDef_type = new entity("IfcUShapeProfileDef", 939, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcVector_type = new entity("IfcVector", 944, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcVertexLoop_type = new entity("IfcVertexLoop", 948, IFC2X3_IfcLoop_type); - IFC2X3_IfcWindowLiningProperties_type = new entity("IfcWindowLiningProperties", 966, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcWindowPanelProperties_type = new entity("IfcWindowPanelProperties", 969, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcWindowStyle_type = new entity("IfcWindowStyle", 970, IFC2X3_IfcTypeProduct_type); - IFC2X3_IfcZShapeProfileDef_type = new entity("IfcZShapeProfileDef", 979, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcAnnotationOccurrence_type = new entity("IfcAnnotationOccurrence", true, 31, IFC2X3_IfcStyledItem_type); + IFC2X3_IfcAnnotationSurfaceOccurrence_type = new entity("IfcAnnotationSurfaceOccurrence", false, 33, IFC2X3_IfcAnnotationOccurrence_type); + IFC2X3_IfcAnnotationSymbolOccurrence_type = new entity("IfcAnnotationSymbolOccurrence", false, 34, IFC2X3_IfcAnnotationOccurrence_type); + IFC2X3_IfcAnnotationTextOccurrence_type = new entity("IfcAnnotationTextOccurrence", false, 35, IFC2X3_IfcAnnotationOccurrence_type); + IFC2X3_IfcArbitraryClosedProfileDef_type = new entity("IfcArbitraryClosedProfileDef", false, 44, IFC2X3_IfcProfileDef_type); + IFC2X3_IfcArbitraryOpenProfileDef_type = new entity("IfcArbitraryOpenProfileDef", false, 45, IFC2X3_IfcProfileDef_type); + IFC2X3_IfcArbitraryProfileDefWithVoids_type = new entity("IfcArbitraryProfileDefWithVoids", false, 46, IFC2X3_IfcArbitraryClosedProfileDef_type); + IFC2X3_IfcBlobTexture_type = new entity("IfcBlobTexture", false, 61, IFC2X3_IfcSurfaceTexture_type); + IFC2X3_IfcCenterLineProfileDef_type = new entity("IfcCenterLineProfileDef", false, 104, IFC2X3_IfcArbitraryOpenProfileDef_type); + IFC2X3_IfcClassificationReference_type = new entity("IfcClassificationReference", false, 119, IFC2X3_IfcExternalReference_type); + IFC2X3_IfcColourRgb_type = new entity("IfcColourRgb", false, 125, IFC2X3_IfcColourSpecification_type); + IFC2X3_IfcComplexProperty_type = new entity("IfcComplexProperty", false, 131, IFC2X3_IfcProperty_type); + IFC2X3_IfcCompositeProfileDef_type = new entity("IfcCompositeProfileDef", false, 134, IFC2X3_IfcProfileDef_type); + IFC2X3_IfcConnectedFaceSet_type = new entity("IfcConnectedFaceSet", false, 144, IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcConnectionCurveGeometry_type = new entity("IfcConnectionCurveGeometry", false, 145, IFC2X3_IfcConnectionGeometry_type); + IFC2X3_IfcConnectionPointEccentricity_type = new entity("IfcConnectionPointEccentricity", false, 147, IFC2X3_IfcConnectionPointGeometry_type); + IFC2X3_IfcContextDependentUnit_type = new entity("IfcContextDependentUnit", false, 162, IFC2X3_IfcNamedUnit_type); + IFC2X3_IfcConversionBasedUnit_type = new entity("IfcConversionBasedUnit", false, 166, IFC2X3_IfcNamedUnit_type); + IFC2X3_IfcCurveStyle_type = new entity("IfcCurveStyle", false, 197, IFC2X3_IfcPresentationStyle_type); + IFC2X3_IfcDerivedProfileDef_type = new entity("IfcDerivedProfileDef", false, 212, IFC2X3_IfcProfileDef_type); + IFC2X3_IfcDimensionCalloutRelationship_type = new entity("IfcDimensionCalloutRelationship", false, 219, IFC2X3_IfcDraughtingCalloutRelationship_type); + IFC2X3_IfcDimensionPair_type = new entity("IfcDimensionPair", false, 225, IFC2X3_IfcDraughtingCalloutRelationship_type); + IFC2X3_IfcDocumentReference_type = new entity("IfcDocumentReference", false, 244, IFC2X3_IfcExternalReference_type); + IFC2X3_IfcDraughtingPreDefinedTextFont_type = new entity("IfcDraughtingPreDefinedTextFont", false, 261, IFC2X3_IfcPreDefinedTextFont_type); + IFC2X3_IfcEdge_type = new entity("IfcEdge", false, 269, IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcEdgeCurve_type = new entity("IfcEdgeCurve", false, 270, IFC2X3_IfcEdge_type); + IFC2X3_IfcExtendedMaterialProperties_type = new entity("IfcExtendedMaterialProperties", false, 321, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcFace_type = new entity("IfcFace", false, 328, IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcFaceBound_type = new entity("IfcFaceBound", false, 330, IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcFaceOuterBound_type = new entity("IfcFaceOuterBound", false, 331, IFC2X3_IfcFaceBound_type); + IFC2X3_IfcFaceSurface_type = new entity("IfcFaceSurface", false, 332, IFC2X3_IfcFace_type); + IFC2X3_IfcFailureConnectionCondition_type = new entity("IfcFailureConnectionCondition", false, 335, IFC2X3_IfcStructuralConnectionCondition_type); + IFC2X3_IfcFillAreaStyle_type = new entity("IfcFillAreaStyle", false, 343, IFC2X3_IfcPresentationStyle_type); + IFC2X3_IfcFuelProperties_type = new entity("IfcFuelProperties", false, 380, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcGeneralMaterialProperties_type = new entity("IfcGeneralMaterialProperties", false, 387, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcGeneralProfileProperties_type = new entity("IfcGeneralProfileProperties", false, 388, IFC2X3_IfcProfileProperties_type); + IFC2X3_IfcGeometricRepresentationContext_type = new entity("IfcGeometricRepresentationContext", false, 391, IFC2X3_IfcRepresentationContext_type); + IFC2X3_IfcGeometricRepresentationItem_type = new entity("IfcGeometricRepresentationItem", true, 392, IFC2X3_IfcRepresentationItem_type); + IFC2X3_IfcGeometricRepresentationSubContext_type = new entity("IfcGeometricRepresentationSubContext", false, 393, IFC2X3_IfcGeometricRepresentationContext_type); + IFC2X3_IfcGeometricSet_type = new entity("IfcGeometricSet", false, 394, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcGridPlacement_type = new entity("IfcGridPlacement", false, 400, IFC2X3_IfcObjectPlacement_type); + IFC2X3_IfcHalfSpaceSolid_type = new entity("IfcHalfSpaceSolid", false, 402, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcHygroscopicMaterialProperties_type = new entity("IfcHygroscopicMaterialProperties", false, 411, IFC2X3_IfcMaterialProperties_type); + IFC2X3_IfcImageTexture_type = new entity("IfcImageTexture", false, 414, IFC2X3_IfcSurfaceTexture_type); + IFC2X3_IfcIrregularTimeSeries_type = new entity("IfcIrregularTimeSeries", false, 422, IFC2X3_IfcTimeSeries_type); + IFC2X3_IfcLightSource_type = new entity("IfcLightSource", true, 446, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcLightSourceAmbient_type = new entity("IfcLightSourceAmbient", false, 447, IFC2X3_IfcLightSource_type); + IFC2X3_IfcLightSourceDirectional_type = new entity("IfcLightSourceDirectional", false, 448, IFC2X3_IfcLightSource_type); + IFC2X3_IfcLightSourceGoniometric_type = new entity("IfcLightSourceGoniometric", false, 449, IFC2X3_IfcLightSource_type); + IFC2X3_IfcLightSourcePositional_type = new entity("IfcLightSourcePositional", false, 450, IFC2X3_IfcLightSource_type); + IFC2X3_IfcLightSourceSpot_type = new entity("IfcLightSourceSpot", false, 451, IFC2X3_IfcLightSourcePositional_type); + IFC2X3_IfcLocalPlacement_type = new entity("IfcLocalPlacement", false, 459, IFC2X3_IfcObjectPlacement_type); + IFC2X3_IfcLoop_type = new entity("IfcLoop", false, 463, IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcMappedItem_type = new entity("IfcMappedItem", false, 471, IFC2X3_IfcRepresentationItem_type); + IFC2X3_IfcMaterialDefinitionRepresentation_type = new entity("IfcMaterialDefinitionRepresentation", false, 478, IFC2X3_IfcProductRepresentation_type); + IFC2X3_IfcMechanicalConcreteMaterialProperties_type = new entity("IfcMechanicalConcreteMaterialProperties", false, 487, IFC2X3_IfcMechanicalMaterialProperties_type); + IFC2X3_IfcObjectDefinition_type = new entity("IfcObjectDefinition", true, 516, IFC2X3_IfcRoot_type); + IFC2X3_IfcOneDirectionRepeatFactor_type = new entity("IfcOneDirectionRepeatFactor", false, 526, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcOpenShell_type = new entity("IfcOpenShell", false, 528, IFC2X3_IfcConnectedFaceSet_type); + IFC2X3_IfcOrientedEdge_type = new entity("IfcOrientedEdge", false, 534, IFC2X3_IfcEdge_type); + IFC2X3_IfcParameterizedProfileDef_type = new entity("IfcParameterizedProfileDef", true, 538, IFC2X3_IfcProfileDef_type); + IFC2X3_IfcPath_type = new entity("IfcPath", false, 540, IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcPhysicalComplexQuantity_type = new entity("IfcPhysicalComplexQuantity", false, 548, IFC2X3_IfcPhysicalQuantity_type); + IFC2X3_IfcPixelTexture_type = new entity("IfcPixelTexture", false, 559, IFC2X3_IfcSurfaceTexture_type); + IFC2X3_IfcPlacement_type = new entity("IfcPlacement", true, 560, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcPlanarExtent_type = new entity("IfcPlanarExtent", false, 562, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcPoint_type = new entity("IfcPoint", true, 569, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcPointOnCurve_type = new entity("IfcPointOnCurve", false, 570, IFC2X3_IfcPoint_type); + IFC2X3_IfcPointOnSurface_type = new entity("IfcPointOnSurface", false, 571, IFC2X3_IfcPoint_type); + IFC2X3_IfcPolyLoop_type = new entity("IfcPolyLoop", false, 575, IFC2X3_IfcLoop_type); + IFC2X3_IfcPolygonalBoundedHalfSpace_type = new entity("IfcPolygonalBoundedHalfSpace", false, 573, IFC2X3_IfcHalfSpaceSolid_type); + IFC2X3_IfcPreDefinedColour_type = new entity("IfcPreDefinedColour", true, 582, IFC2X3_IfcPreDefinedItem_type); + IFC2X3_IfcPreDefinedCurveFont_type = new entity("IfcPreDefinedCurveFont", true, 583, IFC2X3_IfcPreDefinedItem_type); + IFC2X3_IfcPreDefinedDimensionSymbol_type = new entity("IfcPreDefinedDimensionSymbol", false, 584, IFC2X3_IfcPreDefinedSymbol_type); + IFC2X3_IfcPreDefinedPointMarkerSymbol_type = new entity("IfcPreDefinedPointMarkerSymbol", false, 586, IFC2X3_IfcPreDefinedSymbol_type); + IFC2X3_IfcProductDefinitionShape_type = new entity("IfcProductDefinitionShape", false, 601, IFC2X3_IfcProductRepresentation_type); + IFC2X3_IfcPropertyBoundedValue_type = new entity("IfcPropertyBoundedValue", false, 616, IFC2X3_IfcSimpleProperty_type); + IFC2X3_IfcPropertyDefinition_type = new entity("IfcPropertyDefinition", true, 618, IFC2X3_IfcRoot_type); + IFC2X3_IfcPropertyEnumeratedValue_type = new entity("IfcPropertyEnumeratedValue", false, 620, IFC2X3_IfcSimpleProperty_type); + IFC2X3_IfcPropertyListValue_type = new entity("IfcPropertyListValue", false, 622, IFC2X3_IfcSimpleProperty_type); + IFC2X3_IfcPropertyReferenceValue_type = new entity("IfcPropertyReferenceValue", false, 623, IFC2X3_IfcSimpleProperty_type); + IFC2X3_IfcPropertySetDefinition_type = new entity("IfcPropertySetDefinition", true, 625, IFC2X3_IfcPropertyDefinition_type); + IFC2X3_IfcPropertySingleValue_type = new entity("IfcPropertySingleValue", false, 626, IFC2X3_IfcSimpleProperty_type); + IFC2X3_IfcPropertyTableValue_type = new entity("IfcPropertyTableValue", false, 628, IFC2X3_IfcSimpleProperty_type); + IFC2X3_IfcRectangleProfileDef_type = new entity("IfcRectangleProfileDef", false, 654, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcRegularTimeSeries_type = new entity("IfcRegularTimeSeries", false, 659, IFC2X3_IfcTimeSeries_type); + IFC2X3_IfcReinforcementDefinitionProperties_type = new entity("IfcReinforcementDefinitionProperties", false, 661, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcRelationship_type = new entity("IfcRelationship", true, 686, IFC2X3_IfcRoot_type); + IFC2X3_IfcRoundedRectangleProfileDef_type = new entity("IfcRoundedRectangleProfileDef", false, 737, IFC2X3_IfcRectangleProfileDef_type); + IFC2X3_IfcSectionedSpine_type = new entity("IfcSectionedSpine", false, 743, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcServiceLifeFactor_type = new entity("IfcServiceLifeFactor", false, 752, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcShellBasedSurfaceModel_type = new entity("IfcShellBasedSurfaceModel", false, 760, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcSlippageConnectionCondition_type = new entity("IfcSlippageConnectionCondition", false, 771, IFC2X3_IfcStructuralConnectionCondition_type); + IFC2X3_IfcSolidModel_type = new entity("IfcSolidModel", true, 773, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcSoundProperties_type = new entity("IfcSoundProperties", false, 776, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcSoundValue_type = new entity("IfcSoundValue", false, 778, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcSpaceThermalLoadProperties_type = new entity("IfcSpaceThermalLoadProperties", false, 783, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcStructuralLoadLinearForce_type = new entity("IfcStructuralLoadLinearForce", false, 816, IFC2X3_IfcStructuralLoadStatic_type); + IFC2X3_IfcStructuralLoadPlanarForce_type = new entity("IfcStructuralLoadPlanarForce", false, 817, IFC2X3_IfcStructuralLoadStatic_type); + IFC2X3_IfcStructuralLoadSingleDisplacement_type = new entity("IfcStructuralLoadSingleDisplacement", false, 818, IFC2X3_IfcStructuralLoadStatic_type); + IFC2X3_IfcStructuralLoadSingleDisplacementDistortion_type = new entity("IfcStructuralLoadSingleDisplacementDistortion", false, 819, IFC2X3_IfcStructuralLoadSingleDisplacement_type); + IFC2X3_IfcStructuralLoadSingleForce_type = new entity("IfcStructuralLoadSingleForce", false, 820, IFC2X3_IfcStructuralLoadStatic_type); + IFC2X3_IfcStructuralLoadSingleForceWarping_type = new entity("IfcStructuralLoadSingleForceWarping", false, 821, IFC2X3_IfcStructuralLoadSingleForce_type); + IFC2X3_IfcStructuralProfileProperties_type = new entity("IfcStructuralProfileProperties", false, 830, IFC2X3_IfcGeneralProfileProperties_type); + IFC2X3_IfcStructuralSteelProfileProperties_type = new entity("IfcStructuralSteelProfileProperties", false, 833, IFC2X3_IfcStructuralProfileProperties_type); + IFC2X3_IfcSubedge_type = new entity("IfcSubedge", false, 843, IFC2X3_IfcEdge_type); + IFC2X3_IfcSurface_type = new entity("IfcSurface", true, 844, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcSurfaceStyleRendering_type = new entity("IfcSurfaceStyleRendering", false, 854, IFC2X3_IfcSurfaceStyleShading_type); + IFC2X3_IfcSweptAreaSolid_type = new entity("IfcSweptAreaSolid", true, 859, IFC2X3_IfcSolidModel_type); + IFC2X3_IfcSweptDiskSolid_type = new entity("IfcSweptDiskSolid", false, 860, IFC2X3_IfcSolidModel_type); + IFC2X3_IfcSweptSurface_type = new entity("IfcSweptSurface", true, 861, IFC2X3_IfcSurface_type); + IFC2X3_IfcTShapeProfileDef_type = new entity("IfcTShapeProfileDef", false, 928, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcTerminatorSymbol_type = new entity("IfcTerminatorSymbol", false, 878, IFC2X3_IfcAnnotationSymbolOccurrence_type); + IFC2X3_IfcTextLiteral_type = new entity("IfcTextLiteral", false, 884, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcTextLiteralWithExtent_type = new entity("IfcTextLiteralWithExtent", false, 885, IFC2X3_IfcTextLiteral_type); + IFC2X3_IfcTrapeziumProfileDef_type = new entity("IfcTrapeziumProfileDef", false, 924, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcTwoDirectionRepeatFactor_type = new entity("IfcTwoDirectionRepeatFactor", false, 931, IFC2X3_IfcOneDirectionRepeatFactor_type); + IFC2X3_IfcTypeObject_type = new entity("IfcTypeObject", false, 932, IFC2X3_IfcObjectDefinition_type); + IFC2X3_IfcTypeProduct_type = new entity("IfcTypeProduct", false, 933, IFC2X3_IfcTypeObject_type); + IFC2X3_IfcUShapeProfileDef_type = new entity("IfcUShapeProfileDef", false, 939, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcVector_type = new entity("IfcVector", false, 944, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcVertexLoop_type = new entity("IfcVertexLoop", false, 948, IFC2X3_IfcLoop_type); + IFC2X3_IfcWindowLiningProperties_type = new entity("IfcWindowLiningProperties", false, 966, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcWindowPanelProperties_type = new entity("IfcWindowPanelProperties", false, 969, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcWindowStyle_type = new entity("IfcWindowStyle", false, 970, IFC2X3_IfcTypeProduct_type); + IFC2X3_IfcZShapeProfileDef_type = new entity("IfcZShapeProfileDef", false, 979, IFC2X3_IfcParameterizedProfileDef_type); { std::vector items; items.reserve(2); items.push_back(IFC2X3_IfcClassificationNotation_type); @@ -4474,144 +4474,144 @@ IfcParse::schema_definition* IFC2X3_populate_schema() { items.push_back(IFC2X3_IfcSimpleValue_type); IFC2X3_IfcValue_type = new select_type("IfcValue", 940, items); } - IFC2X3_IfcAnnotationCurveOccurrence_type = new entity("IfcAnnotationCurveOccurrence", 28, IFC2X3_IfcAnnotationOccurrence_type); - IFC2X3_IfcAnnotationFillArea_type = new entity("IfcAnnotationFillArea", 29, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcAnnotationFillAreaOccurrence_type = new entity("IfcAnnotationFillAreaOccurrence", 30, IFC2X3_IfcAnnotationOccurrence_type); - IFC2X3_IfcAnnotationSurface_type = new entity("IfcAnnotationSurface", 32, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcAxis1Placement_type = new entity("IfcAxis1Placement", 52, IFC2X3_IfcPlacement_type); - IFC2X3_IfcAxis2Placement2D_type = new entity("IfcAxis2Placement2D", 54, IFC2X3_IfcPlacement_type); - IFC2X3_IfcAxis2Placement3D_type = new entity("IfcAxis2Placement3D", 55, IFC2X3_IfcPlacement_type); - IFC2X3_IfcBooleanResult_type = new entity("IfcBooleanResult", 69, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcBoundedSurface_type = new entity("IfcBoundedSurface", 76, IFC2X3_IfcSurface_type); - IFC2X3_IfcBoundingBox_type = new entity("IfcBoundingBox", 77, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcBoxedHalfSpace_type = new entity("IfcBoxedHalfSpace", 79, IFC2X3_IfcHalfSpaceSolid_type); - IFC2X3_IfcCShapeProfileDef_type = new entity("IfcCShapeProfileDef", 186, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcCartesianPoint_type = new entity("IfcCartesianPoint", 98, IFC2X3_IfcPoint_type); - IFC2X3_IfcCartesianTransformationOperator_type = new entity("IfcCartesianTransformationOperator", 99, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcCartesianTransformationOperator2D_type = new entity("IfcCartesianTransformationOperator2D", 100, IFC2X3_IfcCartesianTransformationOperator_type); - IFC2X3_IfcCartesianTransformationOperator2DnonUniform_type = new entity("IfcCartesianTransformationOperator2DnonUniform", 101, IFC2X3_IfcCartesianTransformationOperator2D_type); - IFC2X3_IfcCartesianTransformationOperator3D_type = new entity("IfcCartesianTransformationOperator3D", 102, IFC2X3_IfcCartesianTransformationOperator_type); - IFC2X3_IfcCartesianTransformationOperator3DnonUniform_type = new entity("IfcCartesianTransformationOperator3DnonUniform", 103, IFC2X3_IfcCartesianTransformationOperator3D_type); - IFC2X3_IfcCircleProfileDef_type = new entity("IfcCircleProfileDef", 112, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcClosedShell_type = new entity("IfcClosedShell", 120, IFC2X3_IfcConnectedFaceSet_type); - IFC2X3_IfcCompositeCurveSegment_type = new entity("IfcCompositeCurveSegment", 133, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcCraneRailAShapeProfileDef_type = new entity("IfcCraneRailAShapeProfileDef", 180, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcCraneRailFShapeProfileDef_type = new entity("IfcCraneRailFShapeProfileDef", 181, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcCsgPrimitive3D_type = new entity("IfcCsgPrimitive3D", 183, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcCsgSolid_type = new entity("IfcCsgSolid", 185, IFC2X3_IfcSolidModel_type); - IFC2X3_IfcCurve_type = new entity("IfcCurve", 193, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcCurveBoundedPlane_type = new entity("IfcCurveBoundedPlane", 194, IFC2X3_IfcBoundedSurface_type); - IFC2X3_IfcDefinedSymbol_type = new entity("IfcDefinedSymbol", 209, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcDimensionCurve_type = new entity("IfcDimensionCurve", 221, IFC2X3_IfcAnnotationCurveOccurrence_type); - IFC2X3_IfcDimensionCurveTerminator_type = new entity("IfcDimensionCurveTerminator", 223, IFC2X3_IfcTerminatorSymbol_type); - IFC2X3_IfcDirection_type = new entity("IfcDirection", 226, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcDoorLiningProperties_type = new entity("IfcDoorLiningProperties", 248, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcDoorPanelProperties_type = new entity("IfcDoorPanelProperties", 251, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcDoorStyle_type = new entity("IfcDoorStyle", 252, IFC2X3_IfcTypeProduct_type); - IFC2X3_IfcDraughtingCallout_type = new entity("IfcDraughtingCallout", 256, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcDraughtingPreDefinedColour_type = new entity("IfcDraughtingPreDefinedColour", 259, IFC2X3_IfcPreDefinedColour_type); - IFC2X3_IfcDraughtingPreDefinedCurveFont_type = new entity("IfcDraughtingPreDefinedCurveFont", 260, IFC2X3_IfcPreDefinedCurveFont_type); - IFC2X3_IfcEdgeLoop_type = new entity("IfcEdgeLoop", 272, IFC2X3_IfcLoop_type); - IFC2X3_IfcElementQuantity_type = new entity("IfcElementQuantity", 304, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcElementType_type = new entity("IfcElementType", 305, IFC2X3_IfcTypeProduct_type); - IFC2X3_IfcElementarySurface_type = new entity("IfcElementarySurface", 298, IFC2X3_IfcSurface_type); - IFC2X3_IfcEllipseProfileDef_type = new entity("IfcEllipseProfileDef", 307, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcEnergyProperties_type = new entity("IfcEnergyProperties", 311, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcExtrudedAreaSolid_type = new entity("IfcExtrudedAreaSolid", 327, IFC2X3_IfcSweptAreaSolid_type); - IFC2X3_IfcFaceBasedSurfaceModel_type = new entity("IfcFaceBasedSurfaceModel", 329, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcFillAreaStyleHatching_type = new entity("IfcFillAreaStyleHatching", 344, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcFillAreaStyleTileSymbolWithStyle_type = new entity("IfcFillAreaStyleTileSymbolWithStyle", 347, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcFillAreaStyleTiles_type = new entity("IfcFillAreaStyleTiles", 345, IFC2X3_IfcGeometricRepresentationItem_type); - IFC2X3_IfcFluidFlowProperties_type = new entity("IfcFluidFlowProperties", 372, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcFurnishingElementType_type = new entity("IfcFurnishingElementType", 382, IFC2X3_IfcElementType_type); - IFC2X3_IfcFurnitureType_type = new entity("IfcFurnitureType", 384, IFC2X3_IfcFurnishingElementType_type); - IFC2X3_IfcGeometricCurveSet_type = new entity("IfcGeometricCurveSet", 389, IFC2X3_IfcGeometricSet_type); - IFC2X3_IfcIShapeProfileDef_type = new entity("IfcIShapeProfileDef", 424, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcLShapeProfileDef_type = new entity("IfcLShapeProfileDef", 464, IFC2X3_IfcParameterizedProfileDef_type); - IFC2X3_IfcLine_type = new entity("IfcLine", 452, IFC2X3_IfcCurve_type); - IFC2X3_IfcManifoldSolidBrep_type = new entity("IfcManifoldSolidBrep", 470, IFC2X3_IfcSolidModel_type); - IFC2X3_IfcObject_type = new entity("IfcObject", 515, IFC2X3_IfcObjectDefinition_type); - IFC2X3_IfcOffsetCurve2D_type = new entity("IfcOffsetCurve2D", 524, IFC2X3_IfcCurve_type); - IFC2X3_IfcOffsetCurve3D_type = new entity("IfcOffsetCurve3D", 525, IFC2X3_IfcCurve_type); - IFC2X3_IfcPermeableCoveringProperties_type = new entity("IfcPermeableCoveringProperties", 543, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcPlanarBox_type = new entity("IfcPlanarBox", 561, IFC2X3_IfcPlanarExtent_type); - IFC2X3_IfcPlane_type = new entity("IfcPlane", 564, IFC2X3_IfcElementarySurface_type); - IFC2X3_IfcProcess_type = new entity("IfcProcess", 599, IFC2X3_IfcObject_type); - IFC2X3_IfcProduct_type = new entity("IfcProduct", 600, IFC2X3_IfcObject_type); - IFC2X3_IfcProject_type = new entity("IfcProject", 607, IFC2X3_IfcObject_type); - IFC2X3_IfcProjectionCurve_type = new entity("IfcProjectionCurve", 609, IFC2X3_IfcAnnotationCurveOccurrence_type); - IFC2X3_IfcPropertySet_type = new entity("IfcPropertySet", 624, IFC2X3_IfcPropertySetDefinition_type); - IFC2X3_IfcProxy_type = new entity("IfcProxy", 631, IFC2X3_IfcProduct_type); - IFC2X3_IfcRectangleHollowProfileDef_type = new entity("IfcRectangleHollowProfileDef", 653, IFC2X3_IfcRectangleProfileDef_type); - IFC2X3_IfcRectangularPyramid_type = new entity("IfcRectangularPyramid", 655, IFC2X3_IfcCsgPrimitive3D_type); - IFC2X3_IfcRectangularTrimmedSurface_type = new entity("IfcRectangularTrimmedSurface", 656, IFC2X3_IfcBoundedSurface_type); - IFC2X3_IfcRelAssigns_type = new entity("IfcRelAssigns", 668, IFC2X3_IfcRelationship_type); - IFC2X3_IfcRelAssignsToActor_type = new entity("IfcRelAssignsToActor", 670, IFC2X3_IfcRelAssigns_type); - IFC2X3_IfcRelAssignsToControl_type = new entity("IfcRelAssignsToControl", 671, IFC2X3_IfcRelAssigns_type); - IFC2X3_IfcRelAssignsToGroup_type = new entity("IfcRelAssignsToGroup", 672, IFC2X3_IfcRelAssigns_type); - IFC2X3_IfcRelAssignsToProcess_type = new entity("IfcRelAssignsToProcess", 673, IFC2X3_IfcRelAssigns_type); - IFC2X3_IfcRelAssignsToProduct_type = new entity("IfcRelAssignsToProduct", 674, IFC2X3_IfcRelAssigns_type); - IFC2X3_IfcRelAssignsToProjectOrder_type = new entity("IfcRelAssignsToProjectOrder", 675, IFC2X3_IfcRelAssignsToControl_type); - IFC2X3_IfcRelAssignsToResource_type = new entity("IfcRelAssignsToResource", 676, IFC2X3_IfcRelAssigns_type); - IFC2X3_IfcRelAssociates_type = new entity("IfcRelAssociates", 677, IFC2X3_IfcRelationship_type); - IFC2X3_IfcRelAssociatesAppliedValue_type = new entity("IfcRelAssociatesAppliedValue", 678, IFC2X3_IfcRelAssociates_type); - IFC2X3_IfcRelAssociatesApproval_type = new entity("IfcRelAssociatesApproval", 679, IFC2X3_IfcRelAssociates_type); - IFC2X3_IfcRelAssociatesClassification_type = new entity("IfcRelAssociatesClassification", 680, IFC2X3_IfcRelAssociates_type); - IFC2X3_IfcRelAssociatesConstraint_type = new entity("IfcRelAssociatesConstraint", 681, IFC2X3_IfcRelAssociates_type); - IFC2X3_IfcRelAssociatesDocument_type = new entity("IfcRelAssociatesDocument", 682, IFC2X3_IfcRelAssociates_type); - IFC2X3_IfcRelAssociatesLibrary_type = new entity("IfcRelAssociatesLibrary", 683, IFC2X3_IfcRelAssociates_type); - IFC2X3_IfcRelAssociatesMaterial_type = new entity("IfcRelAssociatesMaterial", 684, IFC2X3_IfcRelAssociates_type); - IFC2X3_IfcRelAssociatesProfileProperties_type = new entity("IfcRelAssociatesProfileProperties", 685, IFC2X3_IfcRelAssociates_type); - IFC2X3_IfcRelConnects_type = new entity("IfcRelConnects", 688, IFC2X3_IfcRelationship_type); - IFC2X3_IfcRelConnectsElements_type = new entity("IfcRelConnectsElements", 689, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelConnectsPathElements_type = new entity("IfcRelConnectsPathElements", 690, IFC2X3_IfcRelConnectsElements_type); - IFC2X3_IfcRelConnectsPortToElement_type = new entity("IfcRelConnectsPortToElement", 692, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelConnectsPorts_type = new entity("IfcRelConnectsPorts", 691, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelConnectsStructuralActivity_type = new entity("IfcRelConnectsStructuralActivity", 693, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelConnectsStructuralElement_type = new entity("IfcRelConnectsStructuralElement", 694, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelConnectsStructuralMember_type = new entity("IfcRelConnectsStructuralMember", 695, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelConnectsWithEccentricity_type = new entity("IfcRelConnectsWithEccentricity", 696, IFC2X3_IfcRelConnectsStructuralMember_type); - IFC2X3_IfcRelConnectsWithRealizingElements_type = new entity("IfcRelConnectsWithRealizingElements", 697, IFC2X3_IfcRelConnectsElements_type); - IFC2X3_IfcRelContainedInSpatialStructure_type = new entity("IfcRelContainedInSpatialStructure", 698, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelCoversBldgElements_type = new entity("IfcRelCoversBldgElements", 699, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelCoversSpaces_type = new entity("IfcRelCoversSpaces", 700, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelDecomposes_type = new entity("IfcRelDecomposes", 701, IFC2X3_IfcRelationship_type); - IFC2X3_IfcRelDefines_type = new entity("IfcRelDefines", 702, IFC2X3_IfcRelationship_type); - IFC2X3_IfcRelDefinesByProperties_type = new entity("IfcRelDefinesByProperties", 703, IFC2X3_IfcRelDefines_type); - IFC2X3_IfcRelDefinesByType_type = new entity("IfcRelDefinesByType", 704, IFC2X3_IfcRelDefines_type); - IFC2X3_IfcRelFillsElement_type = new entity("IfcRelFillsElement", 705, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelFlowControlElements_type = new entity("IfcRelFlowControlElements", 706, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelInteractionRequirements_type = new entity("IfcRelInteractionRequirements", 707, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelNests_type = new entity("IfcRelNests", 708, IFC2X3_IfcRelDecomposes_type); - IFC2X3_IfcRelOccupiesSpaces_type = new entity("IfcRelOccupiesSpaces", 709, IFC2X3_IfcRelAssignsToActor_type); - IFC2X3_IfcRelOverridesProperties_type = new entity("IfcRelOverridesProperties", 710, IFC2X3_IfcRelDefinesByProperties_type); - IFC2X3_IfcRelProjectsElement_type = new entity("IfcRelProjectsElement", 711, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelReferencedInSpatialStructure_type = new entity("IfcRelReferencedInSpatialStructure", 712, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelSchedulesCostItems_type = new entity("IfcRelSchedulesCostItems", 713, IFC2X3_IfcRelAssignsToControl_type); - IFC2X3_IfcRelSequence_type = new entity("IfcRelSequence", 714, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelServicesBuildings_type = new entity("IfcRelServicesBuildings", 715, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelSpaceBoundary_type = new entity("IfcRelSpaceBoundary", 716, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcRelVoidsElement_type = new entity("IfcRelVoidsElement", 717, IFC2X3_IfcRelConnects_type); - IFC2X3_IfcResource_type = new entity("IfcResource", 722, IFC2X3_IfcObject_type); - IFC2X3_IfcRevolvedAreaSolid_type = new entity("IfcRevolvedAreaSolid", 724, IFC2X3_IfcSweptAreaSolid_type); - IFC2X3_IfcRightCircularCone_type = new entity("IfcRightCircularCone", 727, IFC2X3_IfcCsgPrimitive3D_type); - IFC2X3_IfcRightCircularCylinder_type = new entity("IfcRightCircularCylinder", 728, IFC2X3_IfcCsgPrimitive3D_type); - IFC2X3_IfcSpatialStructureElement_type = new entity("IfcSpatialStructureElement", 786, IFC2X3_IfcProduct_type); - IFC2X3_IfcSpatialStructureElementType_type = new entity("IfcSpatialStructureElementType", 787, IFC2X3_IfcElementType_type); - IFC2X3_IfcSphere_type = new entity("IfcSphere", 792, IFC2X3_IfcCsgPrimitive3D_type); - IFC2X3_IfcStructuralActivity_type = new entity("IfcStructuralActivity", 802, IFC2X3_IfcProduct_type); - IFC2X3_IfcStructuralItem_type = new entity("IfcStructuralItem", 811, IFC2X3_IfcProduct_type); - IFC2X3_IfcStructuralMember_type = new entity("IfcStructuralMember", 824, IFC2X3_IfcStructuralItem_type); - IFC2X3_IfcStructuralReaction_type = new entity("IfcStructuralReaction", 831, IFC2X3_IfcStructuralActivity_type); - IFC2X3_IfcStructuralSurfaceMember_type = new entity("IfcStructuralSurfaceMember", 835, IFC2X3_IfcStructuralMember_type); - IFC2X3_IfcStructuralSurfaceMemberVarying_type = new entity("IfcStructuralSurfaceMemberVarying", 836, IFC2X3_IfcStructuralSurfaceMember_type); - IFC2X3_IfcStructuredDimensionCallout_type = new entity("IfcStructuredDimensionCallout", 838, IFC2X3_IfcDraughtingCallout_type); - IFC2X3_IfcSurfaceCurveSweptAreaSolid_type = new entity("IfcSurfaceCurveSweptAreaSolid", 845, IFC2X3_IfcSweptAreaSolid_type); - IFC2X3_IfcSurfaceOfLinearExtrusion_type = new entity("IfcSurfaceOfLinearExtrusion", 846, IFC2X3_IfcSweptSurface_type); - IFC2X3_IfcSurfaceOfRevolution_type = new entity("IfcSurfaceOfRevolution", 847, IFC2X3_IfcSweptSurface_type); - IFC2X3_IfcSystemFurnitureElementType_type = new entity("IfcSystemFurnitureElementType", 867, IFC2X3_IfcFurnishingElementType_type); - IFC2X3_IfcTask_type = new entity("IfcTask", 872, IFC2X3_IfcProcess_type); - IFC2X3_IfcTransportElementType_type = new entity("IfcTransportElementType", 922, IFC2X3_IfcElementType_type); + IFC2X3_IfcAnnotationCurveOccurrence_type = new entity("IfcAnnotationCurveOccurrence", false, 28, IFC2X3_IfcAnnotationOccurrence_type); + IFC2X3_IfcAnnotationFillArea_type = new entity("IfcAnnotationFillArea", false, 29, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcAnnotationFillAreaOccurrence_type = new entity("IfcAnnotationFillAreaOccurrence", false, 30, IFC2X3_IfcAnnotationOccurrence_type); + IFC2X3_IfcAnnotationSurface_type = new entity("IfcAnnotationSurface", false, 32, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcAxis1Placement_type = new entity("IfcAxis1Placement", false, 52, IFC2X3_IfcPlacement_type); + IFC2X3_IfcAxis2Placement2D_type = new entity("IfcAxis2Placement2D", false, 54, IFC2X3_IfcPlacement_type); + IFC2X3_IfcAxis2Placement3D_type = new entity("IfcAxis2Placement3D", false, 55, IFC2X3_IfcPlacement_type); + IFC2X3_IfcBooleanResult_type = new entity("IfcBooleanResult", false, 69, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcBoundedSurface_type = new entity("IfcBoundedSurface", false, 76, IFC2X3_IfcSurface_type); + IFC2X3_IfcBoundingBox_type = new entity("IfcBoundingBox", false, 77, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcBoxedHalfSpace_type = new entity("IfcBoxedHalfSpace", false, 79, IFC2X3_IfcHalfSpaceSolid_type); + IFC2X3_IfcCShapeProfileDef_type = new entity("IfcCShapeProfileDef", false, 186, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcCartesianPoint_type = new entity("IfcCartesianPoint", false, 98, IFC2X3_IfcPoint_type); + IFC2X3_IfcCartesianTransformationOperator_type = new entity("IfcCartesianTransformationOperator", true, 99, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcCartesianTransformationOperator2D_type = new entity("IfcCartesianTransformationOperator2D", false, 100, IFC2X3_IfcCartesianTransformationOperator_type); + IFC2X3_IfcCartesianTransformationOperator2DnonUniform_type = new entity("IfcCartesianTransformationOperator2DnonUniform", false, 101, IFC2X3_IfcCartesianTransformationOperator2D_type); + IFC2X3_IfcCartesianTransformationOperator3D_type = new entity("IfcCartesianTransformationOperator3D", false, 102, IFC2X3_IfcCartesianTransformationOperator_type); + IFC2X3_IfcCartesianTransformationOperator3DnonUniform_type = new entity("IfcCartesianTransformationOperator3DnonUniform", false, 103, IFC2X3_IfcCartesianTransformationOperator3D_type); + IFC2X3_IfcCircleProfileDef_type = new entity("IfcCircleProfileDef", false, 112, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcClosedShell_type = new entity("IfcClosedShell", false, 120, IFC2X3_IfcConnectedFaceSet_type); + IFC2X3_IfcCompositeCurveSegment_type = new entity("IfcCompositeCurveSegment", false, 133, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcCraneRailAShapeProfileDef_type = new entity("IfcCraneRailAShapeProfileDef", false, 180, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcCraneRailFShapeProfileDef_type = new entity("IfcCraneRailFShapeProfileDef", false, 181, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcCsgPrimitive3D_type = new entity("IfcCsgPrimitive3D", true, 183, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcCsgSolid_type = new entity("IfcCsgSolid", false, 185, IFC2X3_IfcSolidModel_type); + IFC2X3_IfcCurve_type = new entity("IfcCurve", true, 193, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcCurveBoundedPlane_type = new entity("IfcCurveBoundedPlane", false, 194, IFC2X3_IfcBoundedSurface_type); + IFC2X3_IfcDefinedSymbol_type = new entity("IfcDefinedSymbol", false, 209, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcDimensionCurve_type = new entity("IfcDimensionCurve", false, 221, IFC2X3_IfcAnnotationCurveOccurrence_type); + IFC2X3_IfcDimensionCurveTerminator_type = new entity("IfcDimensionCurveTerminator", false, 223, IFC2X3_IfcTerminatorSymbol_type); + IFC2X3_IfcDirection_type = new entity("IfcDirection", false, 226, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcDoorLiningProperties_type = new entity("IfcDoorLiningProperties", false, 248, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcDoorPanelProperties_type = new entity("IfcDoorPanelProperties", false, 251, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcDoorStyle_type = new entity("IfcDoorStyle", false, 252, IFC2X3_IfcTypeProduct_type); + IFC2X3_IfcDraughtingCallout_type = new entity("IfcDraughtingCallout", false, 256, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcDraughtingPreDefinedColour_type = new entity("IfcDraughtingPreDefinedColour", false, 259, IFC2X3_IfcPreDefinedColour_type); + IFC2X3_IfcDraughtingPreDefinedCurveFont_type = new entity("IfcDraughtingPreDefinedCurveFont", false, 260, IFC2X3_IfcPreDefinedCurveFont_type); + IFC2X3_IfcEdgeLoop_type = new entity("IfcEdgeLoop", false, 272, IFC2X3_IfcLoop_type); + IFC2X3_IfcElementQuantity_type = new entity("IfcElementQuantity", false, 304, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcElementType_type = new entity("IfcElementType", true, 305, IFC2X3_IfcTypeProduct_type); + IFC2X3_IfcElementarySurface_type = new entity("IfcElementarySurface", true, 298, IFC2X3_IfcSurface_type); + IFC2X3_IfcEllipseProfileDef_type = new entity("IfcEllipseProfileDef", false, 307, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcEnergyProperties_type = new entity("IfcEnergyProperties", false, 311, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcExtrudedAreaSolid_type = new entity("IfcExtrudedAreaSolid", false, 327, IFC2X3_IfcSweptAreaSolid_type); + IFC2X3_IfcFaceBasedSurfaceModel_type = new entity("IfcFaceBasedSurfaceModel", false, 329, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcFillAreaStyleHatching_type = new entity("IfcFillAreaStyleHatching", false, 344, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcFillAreaStyleTileSymbolWithStyle_type = new entity("IfcFillAreaStyleTileSymbolWithStyle", false, 347, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcFillAreaStyleTiles_type = new entity("IfcFillAreaStyleTiles", false, 345, IFC2X3_IfcGeometricRepresentationItem_type); + IFC2X3_IfcFluidFlowProperties_type = new entity("IfcFluidFlowProperties", false, 372, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcFurnishingElementType_type = new entity("IfcFurnishingElementType", false, 382, IFC2X3_IfcElementType_type); + IFC2X3_IfcFurnitureType_type = new entity("IfcFurnitureType", false, 384, IFC2X3_IfcFurnishingElementType_type); + IFC2X3_IfcGeometricCurveSet_type = new entity("IfcGeometricCurveSet", false, 389, IFC2X3_IfcGeometricSet_type); + IFC2X3_IfcIShapeProfileDef_type = new entity("IfcIShapeProfileDef", false, 424, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcLShapeProfileDef_type = new entity("IfcLShapeProfileDef", false, 464, IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcLine_type = new entity("IfcLine", false, 452, IFC2X3_IfcCurve_type); + IFC2X3_IfcManifoldSolidBrep_type = new entity("IfcManifoldSolidBrep", true, 470, IFC2X3_IfcSolidModel_type); + IFC2X3_IfcObject_type = new entity("IfcObject", true, 515, IFC2X3_IfcObjectDefinition_type); + IFC2X3_IfcOffsetCurve2D_type = new entity("IfcOffsetCurve2D", false, 524, IFC2X3_IfcCurve_type); + IFC2X3_IfcOffsetCurve3D_type = new entity("IfcOffsetCurve3D", false, 525, IFC2X3_IfcCurve_type); + IFC2X3_IfcPermeableCoveringProperties_type = new entity("IfcPermeableCoveringProperties", false, 543, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcPlanarBox_type = new entity("IfcPlanarBox", false, 561, IFC2X3_IfcPlanarExtent_type); + IFC2X3_IfcPlane_type = new entity("IfcPlane", false, 564, IFC2X3_IfcElementarySurface_type); + IFC2X3_IfcProcess_type = new entity("IfcProcess", true, 599, IFC2X3_IfcObject_type); + IFC2X3_IfcProduct_type = new entity("IfcProduct", true, 600, IFC2X3_IfcObject_type); + IFC2X3_IfcProject_type = new entity("IfcProject", false, 607, IFC2X3_IfcObject_type); + IFC2X3_IfcProjectionCurve_type = new entity("IfcProjectionCurve", false, 609, IFC2X3_IfcAnnotationCurveOccurrence_type); + IFC2X3_IfcPropertySet_type = new entity("IfcPropertySet", false, 624, IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcProxy_type = new entity("IfcProxy", false, 631, IFC2X3_IfcProduct_type); + IFC2X3_IfcRectangleHollowProfileDef_type = new entity("IfcRectangleHollowProfileDef", false, 653, IFC2X3_IfcRectangleProfileDef_type); + IFC2X3_IfcRectangularPyramid_type = new entity("IfcRectangularPyramid", false, 655, IFC2X3_IfcCsgPrimitive3D_type); + IFC2X3_IfcRectangularTrimmedSurface_type = new entity("IfcRectangularTrimmedSurface", false, 656, IFC2X3_IfcBoundedSurface_type); + IFC2X3_IfcRelAssigns_type = new entity("IfcRelAssigns", true, 668, IFC2X3_IfcRelationship_type); + IFC2X3_IfcRelAssignsToActor_type = new entity("IfcRelAssignsToActor", false, 670, IFC2X3_IfcRelAssigns_type); + IFC2X3_IfcRelAssignsToControl_type = new entity("IfcRelAssignsToControl", false, 671, IFC2X3_IfcRelAssigns_type); + IFC2X3_IfcRelAssignsToGroup_type = new entity("IfcRelAssignsToGroup", false, 672, IFC2X3_IfcRelAssigns_type); + IFC2X3_IfcRelAssignsToProcess_type = new entity("IfcRelAssignsToProcess", false, 673, IFC2X3_IfcRelAssigns_type); + IFC2X3_IfcRelAssignsToProduct_type = new entity("IfcRelAssignsToProduct", false, 674, IFC2X3_IfcRelAssigns_type); + IFC2X3_IfcRelAssignsToProjectOrder_type = new entity("IfcRelAssignsToProjectOrder", false, 675, IFC2X3_IfcRelAssignsToControl_type); + IFC2X3_IfcRelAssignsToResource_type = new entity("IfcRelAssignsToResource", false, 676, IFC2X3_IfcRelAssigns_type); + IFC2X3_IfcRelAssociates_type = new entity("IfcRelAssociates", false, 677, IFC2X3_IfcRelationship_type); + IFC2X3_IfcRelAssociatesAppliedValue_type = new entity("IfcRelAssociatesAppliedValue", false, 678, IFC2X3_IfcRelAssociates_type); + IFC2X3_IfcRelAssociatesApproval_type = new entity("IfcRelAssociatesApproval", false, 679, IFC2X3_IfcRelAssociates_type); + IFC2X3_IfcRelAssociatesClassification_type = new entity("IfcRelAssociatesClassification", false, 680, IFC2X3_IfcRelAssociates_type); + IFC2X3_IfcRelAssociatesConstraint_type = new entity("IfcRelAssociatesConstraint", false, 681, IFC2X3_IfcRelAssociates_type); + IFC2X3_IfcRelAssociatesDocument_type = new entity("IfcRelAssociatesDocument", false, 682, IFC2X3_IfcRelAssociates_type); + IFC2X3_IfcRelAssociatesLibrary_type = new entity("IfcRelAssociatesLibrary", false, 683, IFC2X3_IfcRelAssociates_type); + IFC2X3_IfcRelAssociatesMaterial_type = new entity("IfcRelAssociatesMaterial", false, 684, IFC2X3_IfcRelAssociates_type); + IFC2X3_IfcRelAssociatesProfileProperties_type = new entity("IfcRelAssociatesProfileProperties", false, 685, IFC2X3_IfcRelAssociates_type); + IFC2X3_IfcRelConnects_type = new entity("IfcRelConnects", true, 688, IFC2X3_IfcRelationship_type); + IFC2X3_IfcRelConnectsElements_type = new entity("IfcRelConnectsElements", false, 689, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelConnectsPathElements_type = new entity("IfcRelConnectsPathElements", false, 690, IFC2X3_IfcRelConnectsElements_type); + IFC2X3_IfcRelConnectsPortToElement_type = new entity("IfcRelConnectsPortToElement", false, 692, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelConnectsPorts_type = new entity("IfcRelConnectsPorts", false, 691, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelConnectsStructuralActivity_type = new entity("IfcRelConnectsStructuralActivity", false, 693, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelConnectsStructuralElement_type = new entity("IfcRelConnectsStructuralElement", false, 694, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelConnectsStructuralMember_type = new entity("IfcRelConnectsStructuralMember", false, 695, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelConnectsWithEccentricity_type = new entity("IfcRelConnectsWithEccentricity", false, 696, IFC2X3_IfcRelConnectsStructuralMember_type); + IFC2X3_IfcRelConnectsWithRealizingElements_type = new entity("IfcRelConnectsWithRealizingElements", false, 697, IFC2X3_IfcRelConnectsElements_type); + IFC2X3_IfcRelContainedInSpatialStructure_type = new entity("IfcRelContainedInSpatialStructure", false, 698, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelCoversBldgElements_type = new entity("IfcRelCoversBldgElements", false, 699, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelCoversSpaces_type = new entity("IfcRelCoversSpaces", false, 700, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelDecomposes_type = new entity("IfcRelDecomposes", true, 701, IFC2X3_IfcRelationship_type); + IFC2X3_IfcRelDefines_type = new entity("IfcRelDefines", true, 702, IFC2X3_IfcRelationship_type); + IFC2X3_IfcRelDefinesByProperties_type = new entity("IfcRelDefinesByProperties", false, 703, IFC2X3_IfcRelDefines_type); + IFC2X3_IfcRelDefinesByType_type = new entity("IfcRelDefinesByType", false, 704, IFC2X3_IfcRelDefines_type); + IFC2X3_IfcRelFillsElement_type = new entity("IfcRelFillsElement", false, 705, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelFlowControlElements_type = new entity("IfcRelFlowControlElements", false, 706, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelInteractionRequirements_type = new entity("IfcRelInteractionRequirements", false, 707, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelNests_type = new entity("IfcRelNests", false, 708, IFC2X3_IfcRelDecomposes_type); + IFC2X3_IfcRelOccupiesSpaces_type = new entity("IfcRelOccupiesSpaces", false, 709, IFC2X3_IfcRelAssignsToActor_type); + IFC2X3_IfcRelOverridesProperties_type = new entity("IfcRelOverridesProperties", false, 710, IFC2X3_IfcRelDefinesByProperties_type); + IFC2X3_IfcRelProjectsElement_type = new entity("IfcRelProjectsElement", false, 711, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelReferencedInSpatialStructure_type = new entity("IfcRelReferencedInSpatialStructure", false, 712, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelSchedulesCostItems_type = new entity("IfcRelSchedulesCostItems", false, 713, IFC2X3_IfcRelAssignsToControl_type); + IFC2X3_IfcRelSequence_type = new entity("IfcRelSequence", false, 714, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelServicesBuildings_type = new entity("IfcRelServicesBuildings", false, 715, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelSpaceBoundary_type = new entity("IfcRelSpaceBoundary", false, 716, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcRelVoidsElement_type = new entity("IfcRelVoidsElement", false, 717, IFC2X3_IfcRelConnects_type); + IFC2X3_IfcResource_type = new entity("IfcResource", true, 722, IFC2X3_IfcObject_type); + IFC2X3_IfcRevolvedAreaSolid_type = new entity("IfcRevolvedAreaSolid", false, 724, IFC2X3_IfcSweptAreaSolid_type); + IFC2X3_IfcRightCircularCone_type = new entity("IfcRightCircularCone", false, 727, IFC2X3_IfcCsgPrimitive3D_type); + IFC2X3_IfcRightCircularCylinder_type = new entity("IfcRightCircularCylinder", false, 728, IFC2X3_IfcCsgPrimitive3D_type); + IFC2X3_IfcSpatialStructureElement_type = new entity("IfcSpatialStructureElement", true, 786, IFC2X3_IfcProduct_type); + IFC2X3_IfcSpatialStructureElementType_type = new entity("IfcSpatialStructureElementType", true, 787, IFC2X3_IfcElementType_type); + IFC2X3_IfcSphere_type = new entity("IfcSphere", false, 792, IFC2X3_IfcCsgPrimitive3D_type); + IFC2X3_IfcStructuralActivity_type = new entity("IfcStructuralActivity", true, 802, IFC2X3_IfcProduct_type); + IFC2X3_IfcStructuralItem_type = new entity("IfcStructuralItem", true, 811, IFC2X3_IfcProduct_type); + IFC2X3_IfcStructuralMember_type = new entity("IfcStructuralMember", true, 824, IFC2X3_IfcStructuralItem_type); + IFC2X3_IfcStructuralReaction_type = new entity("IfcStructuralReaction", true, 831, IFC2X3_IfcStructuralActivity_type); + IFC2X3_IfcStructuralSurfaceMember_type = new entity("IfcStructuralSurfaceMember", false, 835, IFC2X3_IfcStructuralMember_type); + IFC2X3_IfcStructuralSurfaceMemberVarying_type = new entity("IfcStructuralSurfaceMemberVarying", false, 836, IFC2X3_IfcStructuralSurfaceMember_type); + IFC2X3_IfcStructuredDimensionCallout_type = new entity("IfcStructuredDimensionCallout", false, 838, IFC2X3_IfcDraughtingCallout_type); + IFC2X3_IfcSurfaceCurveSweptAreaSolid_type = new entity("IfcSurfaceCurveSweptAreaSolid", false, 845, IFC2X3_IfcSweptAreaSolid_type); + IFC2X3_IfcSurfaceOfLinearExtrusion_type = new entity("IfcSurfaceOfLinearExtrusion", false, 846, IFC2X3_IfcSweptSurface_type); + IFC2X3_IfcSurfaceOfRevolution_type = new entity("IfcSurfaceOfRevolution", false, 847, IFC2X3_IfcSweptSurface_type); + IFC2X3_IfcSystemFurnitureElementType_type = new entity("IfcSystemFurnitureElementType", false, 867, IFC2X3_IfcFurnishingElementType_type); + IFC2X3_IfcTask_type = new entity("IfcTask", false, 872, IFC2X3_IfcProcess_type); + IFC2X3_IfcTransportElementType_type = new entity("IfcTransportElementType", false, 922, IFC2X3_IfcElementType_type); { std::vector items; items.reserve(2); items.push_back(IFC2X3_IfcAxis2Placement2D_type); @@ -4696,139 +4696,139 @@ IfcParse::schema_definition* IFC2X3_populate_schema() { items.push_back(IFC2X3_IfcVector_type); IFC2X3_IfcVectorOrDirection_type = new select_type("IfcVectorOrDirection", 945, items); } - IFC2X3_IfcActor_type = new entity("IfcActor", 6, IFC2X3_IfcObject_type); - IFC2X3_IfcAnnotation_type = new entity("IfcAnnotation", 27, IFC2X3_IfcProduct_type); - IFC2X3_IfcAsymmetricIShapeProfileDef_type = new entity("IfcAsymmetricIShapeProfileDef", 51, IFC2X3_IfcIShapeProfileDef_type); - IFC2X3_IfcBlock_type = new entity("IfcBlock", 62, IFC2X3_IfcCsgPrimitive3D_type); - IFC2X3_IfcBooleanClippingResult_type = new entity("IfcBooleanClippingResult", 66, IFC2X3_IfcBooleanResult_type); - IFC2X3_IfcBoundedCurve_type = new entity("IfcBoundedCurve", 75, IFC2X3_IfcCurve_type); - IFC2X3_IfcBuilding_type = new entity("IfcBuilding", 82, IFC2X3_IfcSpatialStructureElement_type); - IFC2X3_IfcBuildingElementType_type = new entity("IfcBuildingElementType", 89, IFC2X3_IfcElementType_type); - IFC2X3_IfcBuildingStorey_type = new entity("IfcBuildingStorey", 90, IFC2X3_IfcSpatialStructureElement_type); - IFC2X3_IfcCircleHollowProfileDef_type = new entity("IfcCircleHollowProfileDef", 111, IFC2X3_IfcCircleProfileDef_type); - IFC2X3_IfcColumnType_type = new entity("IfcColumnType", 128, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcCompositeCurve_type = new entity("IfcCompositeCurve", 132, IFC2X3_IfcBoundedCurve_type); - IFC2X3_IfcConic_type = new entity("IfcConic", 143, IFC2X3_IfcCurve_type); - IFC2X3_IfcConstructionResource_type = new entity("IfcConstructionResource", 160, IFC2X3_IfcResource_type); - IFC2X3_IfcControl_type = new entity("IfcControl", 163, IFC2X3_IfcObject_type); - IFC2X3_IfcCostItem_type = new entity("IfcCostItem", 172, IFC2X3_IfcControl_type); - IFC2X3_IfcCostSchedule_type = new entity("IfcCostSchedule", 173, IFC2X3_IfcControl_type); - IFC2X3_IfcCoveringType_type = new entity("IfcCoveringType", 178, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcCrewResource_type = new entity("IfcCrewResource", 182, IFC2X3_IfcConstructionResource_type); - IFC2X3_IfcCurtainWallType_type = new entity("IfcCurtainWallType", 190, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcDimensionCurveDirectedCallout_type = new entity("IfcDimensionCurveDirectedCallout", 222, IFC2X3_IfcDraughtingCallout_type); - IFC2X3_IfcDistributionElementType_type = new entity("IfcDistributionElementType", 236, IFC2X3_IfcElementType_type); - IFC2X3_IfcDistributionFlowElementType_type = new entity("IfcDistributionFlowElementType", 238, IFC2X3_IfcDistributionElementType_type); - IFC2X3_IfcElectricalBaseProperties_type = new entity("IfcElectricalBaseProperties", 273, IFC2X3_IfcEnergyProperties_type); - IFC2X3_IfcElement_type = new entity("IfcElement", 297, IFC2X3_IfcProduct_type); - IFC2X3_IfcElementAssembly_type = new entity("IfcElementAssembly", 299, IFC2X3_IfcElement_type); - IFC2X3_IfcElementComponent_type = new entity("IfcElementComponent", 301, IFC2X3_IfcElement_type); - IFC2X3_IfcElementComponentType_type = new entity("IfcElementComponentType", 302, IFC2X3_IfcElementType_type); - IFC2X3_IfcEllipse_type = new entity("IfcEllipse", 306, IFC2X3_IfcConic_type); - IFC2X3_IfcEnergyConversionDeviceType_type = new entity("IfcEnergyConversionDeviceType", 309, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcEquipmentElement_type = new entity("IfcEquipmentElement", 315, IFC2X3_IfcElement_type); - IFC2X3_IfcEquipmentStandard_type = new entity("IfcEquipmentStandard", 316, IFC2X3_IfcControl_type); - IFC2X3_IfcEvaporativeCoolerType_type = new entity("IfcEvaporativeCoolerType", 317, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcEvaporatorType_type = new entity("IfcEvaporatorType", 319, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcFacetedBrep_type = new entity("IfcFacetedBrep", 333, IFC2X3_IfcManifoldSolidBrep_type); - IFC2X3_IfcFacetedBrepWithVoids_type = new entity("IfcFacetedBrepWithVoids", 334, IFC2X3_IfcManifoldSolidBrep_type); - IFC2X3_IfcFastener_type = new entity("IfcFastener", 338, IFC2X3_IfcElementComponent_type); - IFC2X3_IfcFastenerType_type = new entity("IfcFastenerType", 339, IFC2X3_IfcElementComponentType_type); - IFC2X3_IfcFeatureElement_type = new entity("IfcFeatureElement", 340, IFC2X3_IfcElement_type); - IFC2X3_IfcFeatureElementAddition_type = new entity("IfcFeatureElementAddition", 341, IFC2X3_IfcFeatureElement_type); - IFC2X3_IfcFeatureElementSubtraction_type = new entity("IfcFeatureElementSubtraction", 342, IFC2X3_IfcFeatureElement_type); - IFC2X3_IfcFlowControllerType_type = new entity("IfcFlowControllerType", 354, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcFlowFittingType_type = new entity("IfcFlowFittingType", 357, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcFlowMeterType_type = new entity("IfcFlowMeterType", 360, IFC2X3_IfcFlowControllerType_type); - IFC2X3_IfcFlowMovingDeviceType_type = new entity("IfcFlowMovingDeviceType", 363, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcFlowSegmentType_type = new entity("IfcFlowSegmentType", 365, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcFlowStorageDeviceType_type = new entity("IfcFlowStorageDeviceType", 367, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcFlowTerminalType_type = new entity("IfcFlowTerminalType", 369, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcFlowTreatmentDeviceType_type = new entity("IfcFlowTreatmentDeviceType", 371, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcFurnishingElement_type = new entity("IfcFurnishingElement", 381, IFC2X3_IfcElement_type); - IFC2X3_IfcFurnitureStandard_type = new entity("IfcFurnitureStandard", 383, IFC2X3_IfcControl_type); - IFC2X3_IfcGasTerminalType_type = new entity("IfcGasTerminalType", 385, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcGrid_type = new entity("IfcGrid", 398, IFC2X3_IfcProduct_type); - IFC2X3_IfcGroup_type = new entity("IfcGroup", 401, IFC2X3_IfcObject_type); - IFC2X3_IfcHeatExchangerType_type = new entity("IfcHeatExchangerType", 404, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcHumidifierType_type = new entity("IfcHumidifierType", 409, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcInventory_type = new entity("IfcInventory", 419, IFC2X3_IfcGroup_type); - IFC2X3_IfcJunctionBoxType_type = new entity("IfcJunctionBoxType", 426, IFC2X3_IfcFlowFittingType_type); - IFC2X3_IfcLaborResource_type = new entity("IfcLaborResource", 430, IFC2X3_IfcConstructionResource_type); - IFC2X3_IfcLampType_type = new entity("IfcLampType", 431, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcLightFixtureType_type = new entity("IfcLightFixtureType", 443, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcLinearDimension_type = new entity("IfcLinearDimension", 453, IFC2X3_IfcDimensionCurveDirectedCallout_type); - IFC2X3_IfcMechanicalFastener_type = new entity("IfcMechanicalFastener", 488, IFC2X3_IfcFastener_type); - IFC2X3_IfcMechanicalFastenerType_type = new entity("IfcMechanicalFastenerType", 489, IFC2X3_IfcFastenerType_type); - IFC2X3_IfcMemberType_type = new entity("IfcMemberType", 493, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcMotorConnectionType_type = new entity("IfcMotorConnectionType", 508, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcMove_type = new entity("IfcMove", 510, IFC2X3_IfcTask_type); - IFC2X3_IfcOccupant_type = new entity("IfcOccupant", 522, IFC2X3_IfcActor_type); - IFC2X3_IfcOpeningElement_type = new entity("IfcOpeningElement", 527, IFC2X3_IfcFeatureElementSubtraction_type); - IFC2X3_IfcOrderAction_type = new entity("IfcOrderAction", 530, IFC2X3_IfcTask_type); - IFC2X3_IfcOutletType_type = new entity("IfcOutletType", 535, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcPerformanceHistory_type = new entity("IfcPerformanceHistory", 541, IFC2X3_IfcControl_type); - IFC2X3_IfcPermit_type = new entity("IfcPermit", 544, IFC2X3_IfcControl_type); - IFC2X3_IfcPipeFittingType_type = new entity("IfcPipeFittingType", 555, IFC2X3_IfcFlowFittingType_type); - IFC2X3_IfcPipeSegmentType_type = new entity("IfcPipeSegmentType", 557, IFC2X3_IfcFlowSegmentType_type); - IFC2X3_IfcPlateType_type = new entity("IfcPlateType", 567, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcPolyline_type = new entity("IfcPolyline", 574, IFC2X3_IfcBoundedCurve_type); - IFC2X3_IfcPort_type = new entity("IfcPort", 576, IFC2X3_IfcProduct_type); - IFC2X3_IfcProcedure_type = new entity("IfcProcedure", 597, IFC2X3_IfcProcess_type); - IFC2X3_IfcProjectOrder_type = new entity("IfcProjectOrder", 611, IFC2X3_IfcControl_type); - IFC2X3_IfcProjectOrderRecord_type = new entity("IfcProjectOrderRecord", 612, IFC2X3_IfcControl_type); - IFC2X3_IfcProjectionElement_type = new entity("IfcProjectionElement", 610, IFC2X3_IfcFeatureElementAddition_type); - IFC2X3_IfcProtectiveDeviceType_type = new entity("IfcProtectiveDeviceType", 629, IFC2X3_IfcFlowControllerType_type); - IFC2X3_IfcPumpType_type = new entity("IfcPumpType", 632, IFC2X3_IfcFlowMovingDeviceType_type); - IFC2X3_IfcRadiusDimension_type = new entity("IfcRadiusDimension", 641, IFC2X3_IfcDimensionCurveDirectedCallout_type); - IFC2X3_IfcRailingType_type = new entity("IfcRailingType", 643, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcRampFlightType_type = new entity("IfcRampFlightType", 647, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcRelAggregates_type = new entity("IfcRelAggregates", 667, IFC2X3_IfcRelDecomposes_type); - IFC2X3_IfcRelAssignsTasks_type = new entity("IfcRelAssignsTasks", 669, IFC2X3_IfcRelAssignsToControl_type); - IFC2X3_IfcSanitaryTerminalType_type = new entity("IfcSanitaryTerminalType", 738, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcScheduleTimeControl_type = new entity("IfcScheduleTimeControl", 740, IFC2X3_IfcControl_type); - IFC2X3_IfcServiceLife_type = new entity("IfcServiceLife", 751, IFC2X3_IfcControl_type); - IFC2X3_IfcSite_type = new entity("IfcSite", 764, IFC2X3_IfcSpatialStructureElement_type); - IFC2X3_IfcSlabType_type = new entity("IfcSlabType", 769, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcSpace_type = new entity("IfcSpace", 779, IFC2X3_IfcSpatialStructureElement_type); - IFC2X3_IfcSpaceHeaterType_type = new entity("IfcSpaceHeaterType", 780, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcSpaceProgram_type = new entity("IfcSpaceProgram", 782, IFC2X3_IfcControl_type); - IFC2X3_IfcSpaceType_type = new entity("IfcSpaceType", 784, IFC2X3_IfcSpatialStructureElementType_type); - IFC2X3_IfcStackTerminalType_type = new entity("IfcStackTerminalType", 793, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcStairFlightType_type = new entity("IfcStairFlightType", 797, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcStructuralAction_type = new entity("IfcStructuralAction", 801, IFC2X3_IfcStructuralActivity_type); - IFC2X3_IfcStructuralConnection_type = new entity("IfcStructuralConnection", 805, IFC2X3_IfcStructuralItem_type); - IFC2X3_IfcStructuralCurveConnection_type = new entity("IfcStructuralCurveConnection", 807, IFC2X3_IfcStructuralConnection_type); - IFC2X3_IfcStructuralCurveMember_type = new entity("IfcStructuralCurveMember", 808, IFC2X3_IfcStructuralMember_type); - IFC2X3_IfcStructuralCurveMemberVarying_type = new entity("IfcStructuralCurveMemberVarying", 809, IFC2X3_IfcStructuralCurveMember_type); - IFC2X3_IfcStructuralLinearAction_type = new entity("IfcStructuralLinearAction", 812, IFC2X3_IfcStructuralAction_type); - IFC2X3_IfcStructuralLinearActionVarying_type = new entity("IfcStructuralLinearActionVarying", 813, IFC2X3_IfcStructuralLinearAction_type); - IFC2X3_IfcStructuralLoadGroup_type = new entity("IfcStructuralLoadGroup", 815, IFC2X3_IfcGroup_type); - IFC2X3_IfcStructuralPlanarAction_type = new entity("IfcStructuralPlanarAction", 825, IFC2X3_IfcStructuralAction_type); - IFC2X3_IfcStructuralPlanarActionVarying_type = new entity("IfcStructuralPlanarActionVarying", 826, IFC2X3_IfcStructuralPlanarAction_type); - IFC2X3_IfcStructuralPointAction_type = new entity("IfcStructuralPointAction", 827, IFC2X3_IfcStructuralAction_type); - IFC2X3_IfcStructuralPointConnection_type = new entity("IfcStructuralPointConnection", 828, IFC2X3_IfcStructuralConnection_type); - IFC2X3_IfcStructuralPointReaction_type = new entity("IfcStructuralPointReaction", 829, IFC2X3_IfcStructuralReaction_type); - IFC2X3_IfcStructuralResultGroup_type = new entity("IfcStructuralResultGroup", 832, IFC2X3_IfcGroup_type); - IFC2X3_IfcStructuralSurfaceConnection_type = new entity("IfcStructuralSurfaceConnection", 834, IFC2X3_IfcStructuralConnection_type); - IFC2X3_IfcSubContractResource_type = new entity("IfcSubContractResource", 842, IFC2X3_IfcConstructionResource_type); - IFC2X3_IfcSwitchingDeviceType_type = new entity("IfcSwitchingDeviceType", 862, IFC2X3_IfcFlowControllerType_type); - IFC2X3_IfcSystem_type = new entity("IfcSystem", 866, IFC2X3_IfcGroup_type); - IFC2X3_IfcTankType_type = new entity("IfcTankType", 870, IFC2X3_IfcFlowStorageDeviceType_type); - IFC2X3_IfcTimeSeriesSchedule_type = new entity("IfcTimeSeriesSchedule", 911, IFC2X3_IfcControl_type); - IFC2X3_IfcTransformerType_type = new entity("IfcTransformerType", 918, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcTransportElement_type = new entity("IfcTransportElement", 921, IFC2X3_IfcElement_type); - IFC2X3_IfcTrimmedCurve_type = new entity("IfcTrimmedCurve", 925, IFC2X3_IfcBoundedCurve_type); - IFC2X3_IfcTubeBundleType_type = new entity("IfcTubeBundleType", 929, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcUnitaryEquipmentType_type = new entity("IfcUnitaryEquipmentType", 935, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcValveType_type = new entity("IfcValveType", 941, IFC2X3_IfcFlowControllerType_type); - IFC2X3_IfcVirtualElement_type = new entity("IfcVirtualElement", 952, IFC2X3_IfcElement_type); - IFC2X3_IfcWallType_type = new entity("IfcWallType", 958, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcWasteTerminalType_type = new entity("IfcWasteTerminalType", 962, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcWorkControl_type = new entity("IfcWorkControl", 973, IFC2X3_IfcControl_type); - IFC2X3_IfcWorkPlan_type = new entity("IfcWorkPlan", 975, IFC2X3_IfcWorkControl_type); - IFC2X3_IfcWorkSchedule_type = new entity("IfcWorkSchedule", 976, IFC2X3_IfcWorkControl_type); - IFC2X3_IfcZone_type = new entity("IfcZone", 978, IFC2X3_IfcGroup_type); + IFC2X3_IfcActor_type = new entity("IfcActor", false, 6, IFC2X3_IfcObject_type); + IFC2X3_IfcAnnotation_type = new entity("IfcAnnotation", false, 27, IFC2X3_IfcProduct_type); + IFC2X3_IfcAsymmetricIShapeProfileDef_type = new entity("IfcAsymmetricIShapeProfileDef", false, 51, IFC2X3_IfcIShapeProfileDef_type); + IFC2X3_IfcBlock_type = new entity("IfcBlock", false, 62, IFC2X3_IfcCsgPrimitive3D_type); + IFC2X3_IfcBooleanClippingResult_type = new entity("IfcBooleanClippingResult", false, 66, IFC2X3_IfcBooleanResult_type); + IFC2X3_IfcBoundedCurve_type = new entity("IfcBoundedCurve", true, 75, IFC2X3_IfcCurve_type); + IFC2X3_IfcBuilding_type = new entity("IfcBuilding", false, 82, IFC2X3_IfcSpatialStructureElement_type); + IFC2X3_IfcBuildingElementType_type = new entity("IfcBuildingElementType", true, 89, IFC2X3_IfcElementType_type); + IFC2X3_IfcBuildingStorey_type = new entity("IfcBuildingStorey", false, 90, IFC2X3_IfcSpatialStructureElement_type); + IFC2X3_IfcCircleHollowProfileDef_type = new entity("IfcCircleHollowProfileDef", false, 111, IFC2X3_IfcCircleProfileDef_type); + IFC2X3_IfcColumnType_type = new entity("IfcColumnType", false, 128, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcCompositeCurve_type = new entity("IfcCompositeCurve", false, 132, IFC2X3_IfcBoundedCurve_type); + IFC2X3_IfcConic_type = new entity("IfcConic", true, 143, IFC2X3_IfcCurve_type); + IFC2X3_IfcConstructionResource_type = new entity("IfcConstructionResource", true, 160, IFC2X3_IfcResource_type); + IFC2X3_IfcControl_type = new entity("IfcControl", true, 163, IFC2X3_IfcObject_type); + IFC2X3_IfcCostItem_type = new entity("IfcCostItem", false, 172, IFC2X3_IfcControl_type); + IFC2X3_IfcCostSchedule_type = new entity("IfcCostSchedule", false, 173, IFC2X3_IfcControl_type); + IFC2X3_IfcCoveringType_type = new entity("IfcCoveringType", false, 178, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcCrewResource_type = new entity("IfcCrewResource", false, 182, IFC2X3_IfcConstructionResource_type); + IFC2X3_IfcCurtainWallType_type = new entity("IfcCurtainWallType", false, 190, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcDimensionCurveDirectedCallout_type = new entity("IfcDimensionCurveDirectedCallout", false, 222, IFC2X3_IfcDraughtingCallout_type); + IFC2X3_IfcDistributionElementType_type = new entity("IfcDistributionElementType", false, 236, IFC2X3_IfcElementType_type); + IFC2X3_IfcDistributionFlowElementType_type = new entity("IfcDistributionFlowElementType", true, 238, IFC2X3_IfcDistributionElementType_type); + IFC2X3_IfcElectricalBaseProperties_type = new entity("IfcElectricalBaseProperties", false, 273, IFC2X3_IfcEnergyProperties_type); + IFC2X3_IfcElement_type = new entity("IfcElement", true, 297, IFC2X3_IfcProduct_type); + IFC2X3_IfcElementAssembly_type = new entity("IfcElementAssembly", false, 299, IFC2X3_IfcElement_type); + IFC2X3_IfcElementComponent_type = new entity("IfcElementComponent", true, 301, IFC2X3_IfcElement_type); + IFC2X3_IfcElementComponentType_type = new entity("IfcElementComponentType", true, 302, IFC2X3_IfcElementType_type); + IFC2X3_IfcEllipse_type = new entity("IfcEllipse", false, 306, IFC2X3_IfcConic_type); + IFC2X3_IfcEnergyConversionDeviceType_type = new entity("IfcEnergyConversionDeviceType", true, 309, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcEquipmentElement_type = new entity("IfcEquipmentElement", false, 315, IFC2X3_IfcElement_type); + IFC2X3_IfcEquipmentStandard_type = new entity("IfcEquipmentStandard", false, 316, IFC2X3_IfcControl_type); + IFC2X3_IfcEvaporativeCoolerType_type = new entity("IfcEvaporativeCoolerType", false, 317, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcEvaporatorType_type = new entity("IfcEvaporatorType", false, 319, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcFacetedBrep_type = new entity("IfcFacetedBrep", false, 333, IFC2X3_IfcManifoldSolidBrep_type); + IFC2X3_IfcFacetedBrepWithVoids_type = new entity("IfcFacetedBrepWithVoids", false, 334, IFC2X3_IfcManifoldSolidBrep_type); + IFC2X3_IfcFastener_type = new entity("IfcFastener", false, 338, IFC2X3_IfcElementComponent_type); + IFC2X3_IfcFastenerType_type = new entity("IfcFastenerType", false, 339, IFC2X3_IfcElementComponentType_type); + IFC2X3_IfcFeatureElement_type = new entity("IfcFeatureElement", true, 340, IFC2X3_IfcElement_type); + IFC2X3_IfcFeatureElementAddition_type = new entity("IfcFeatureElementAddition", true, 341, IFC2X3_IfcFeatureElement_type); + IFC2X3_IfcFeatureElementSubtraction_type = new entity("IfcFeatureElementSubtraction", true, 342, IFC2X3_IfcFeatureElement_type); + IFC2X3_IfcFlowControllerType_type = new entity("IfcFlowControllerType", true, 354, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcFlowFittingType_type = new entity("IfcFlowFittingType", true, 357, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcFlowMeterType_type = new entity("IfcFlowMeterType", false, 360, IFC2X3_IfcFlowControllerType_type); + IFC2X3_IfcFlowMovingDeviceType_type = new entity("IfcFlowMovingDeviceType", true, 363, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcFlowSegmentType_type = new entity("IfcFlowSegmentType", true, 365, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcFlowStorageDeviceType_type = new entity("IfcFlowStorageDeviceType", true, 367, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcFlowTerminalType_type = new entity("IfcFlowTerminalType", true, 369, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcFlowTreatmentDeviceType_type = new entity("IfcFlowTreatmentDeviceType", true, 371, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcFurnishingElement_type = new entity("IfcFurnishingElement", false, 381, IFC2X3_IfcElement_type); + IFC2X3_IfcFurnitureStandard_type = new entity("IfcFurnitureStandard", false, 383, IFC2X3_IfcControl_type); + IFC2X3_IfcGasTerminalType_type = new entity("IfcGasTerminalType", false, 385, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcGrid_type = new entity("IfcGrid", false, 398, IFC2X3_IfcProduct_type); + IFC2X3_IfcGroup_type = new entity("IfcGroup", false, 401, IFC2X3_IfcObject_type); + IFC2X3_IfcHeatExchangerType_type = new entity("IfcHeatExchangerType", false, 404, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcHumidifierType_type = new entity("IfcHumidifierType", false, 409, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcInventory_type = new entity("IfcInventory", false, 419, IFC2X3_IfcGroup_type); + IFC2X3_IfcJunctionBoxType_type = new entity("IfcJunctionBoxType", false, 426, IFC2X3_IfcFlowFittingType_type); + IFC2X3_IfcLaborResource_type = new entity("IfcLaborResource", false, 430, IFC2X3_IfcConstructionResource_type); + IFC2X3_IfcLampType_type = new entity("IfcLampType", false, 431, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcLightFixtureType_type = new entity("IfcLightFixtureType", false, 443, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcLinearDimension_type = new entity("IfcLinearDimension", false, 453, IFC2X3_IfcDimensionCurveDirectedCallout_type); + IFC2X3_IfcMechanicalFastener_type = new entity("IfcMechanicalFastener", false, 488, IFC2X3_IfcFastener_type); + IFC2X3_IfcMechanicalFastenerType_type = new entity("IfcMechanicalFastenerType", false, 489, IFC2X3_IfcFastenerType_type); + IFC2X3_IfcMemberType_type = new entity("IfcMemberType", false, 493, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcMotorConnectionType_type = new entity("IfcMotorConnectionType", false, 508, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcMove_type = new entity("IfcMove", false, 510, IFC2X3_IfcTask_type); + IFC2X3_IfcOccupant_type = new entity("IfcOccupant", false, 522, IFC2X3_IfcActor_type); + IFC2X3_IfcOpeningElement_type = new entity("IfcOpeningElement", false, 527, IFC2X3_IfcFeatureElementSubtraction_type); + IFC2X3_IfcOrderAction_type = new entity("IfcOrderAction", false, 530, IFC2X3_IfcTask_type); + IFC2X3_IfcOutletType_type = new entity("IfcOutletType", false, 535, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcPerformanceHistory_type = new entity("IfcPerformanceHistory", false, 541, IFC2X3_IfcControl_type); + IFC2X3_IfcPermit_type = new entity("IfcPermit", false, 544, IFC2X3_IfcControl_type); + IFC2X3_IfcPipeFittingType_type = new entity("IfcPipeFittingType", false, 555, IFC2X3_IfcFlowFittingType_type); + IFC2X3_IfcPipeSegmentType_type = new entity("IfcPipeSegmentType", false, 557, IFC2X3_IfcFlowSegmentType_type); + IFC2X3_IfcPlateType_type = new entity("IfcPlateType", false, 567, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcPolyline_type = new entity("IfcPolyline", false, 574, IFC2X3_IfcBoundedCurve_type); + IFC2X3_IfcPort_type = new entity("IfcPort", true, 576, IFC2X3_IfcProduct_type); + IFC2X3_IfcProcedure_type = new entity("IfcProcedure", false, 597, IFC2X3_IfcProcess_type); + IFC2X3_IfcProjectOrder_type = new entity("IfcProjectOrder", false, 611, IFC2X3_IfcControl_type); + IFC2X3_IfcProjectOrderRecord_type = new entity("IfcProjectOrderRecord", false, 612, IFC2X3_IfcControl_type); + IFC2X3_IfcProjectionElement_type = new entity("IfcProjectionElement", false, 610, IFC2X3_IfcFeatureElementAddition_type); + IFC2X3_IfcProtectiveDeviceType_type = new entity("IfcProtectiveDeviceType", false, 629, IFC2X3_IfcFlowControllerType_type); + IFC2X3_IfcPumpType_type = new entity("IfcPumpType", false, 632, IFC2X3_IfcFlowMovingDeviceType_type); + IFC2X3_IfcRadiusDimension_type = new entity("IfcRadiusDimension", false, 641, IFC2X3_IfcDimensionCurveDirectedCallout_type); + IFC2X3_IfcRailingType_type = new entity("IfcRailingType", false, 643, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcRampFlightType_type = new entity("IfcRampFlightType", false, 647, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcRelAggregates_type = new entity("IfcRelAggregates", false, 667, IFC2X3_IfcRelDecomposes_type); + IFC2X3_IfcRelAssignsTasks_type = new entity("IfcRelAssignsTasks", false, 669, IFC2X3_IfcRelAssignsToControl_type); + IFC2X3_IfcSanitaryTerminalType_type = new entity("IfcSanitaryTerminalType", false, 738, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcScheduleTimeControl_type = new entity("IfcScheduleTimeControl", false, 740, IFC2X3_IfcControl_type); + IFC2X3_IfcServiceLife_type = new entity("IfcServiceLife", false, 751, IFC2X3_IfcControl_type); + IFC2X3_IfcSite_type = new entity("IfcSite", false, 764, IFC2X3_IfcSpatialStructureElement_type); + IFC2X3_IfcSlabType_type = new entity("IfcSlabType", false, 769, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcSpace_type = new entity("IfcSpace", false, 779, IFC2X3_IfcSpatialStructureElement_type); + IFC2X3_IfcSpaceHeaterType_type = new entity("IfcSpaceHeaterType", false, 780, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcSpaceProgram_type = new entity("IfcSpaceProgram", false, 782, IFC2X3_IfcControl_type); + IFC2X3_IfcSpaceType_type = new entity("IfcSpaceType", false, 784, IFC2X3_IfcSpatialStructureElementType_type); + IFC2X3_IfcStackTerminalType_type = new entity("IfcStackTerminalType", false, 793, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcStairFlightType_type = new entity("IfcStairFlightType", false, 797, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcStructuralAction_type = new entity("IfcStructuralAction", true, 801, IFC2X3_IfcStructuralActivity_type); + IFC2X3_IfcStructuralConnection_type = new entity("IfcStructuralConnection", true, 805, IFC2X3_IfcStructuralItem_type); + IFC2X3_IfcStructuralCurveConnection_type = new entity("IfcStructuralCurveConnection", false, 807, IFC2X3_IfcStructuralConnection_type); + IFC2X3_IfcStructuralCurveMember_type = new entity("IfcStructuralCurveMember", false, 808, IFC2X3_IfcStructuralMember_type); + IFC2X3_IfcStructuralCurveMemberVarying_type = new entity("IfcStructuralCurveMemberVarying", false, 809, IFC2X3_IfcStructuralCurveMember_type); + IFC2X3_IfcStructuralLinearAction_type = new entity("IfcStructuralLinearAction", false, 812, IFC2X3_IfcStructuralAction_type); + IFC2X3_IfcStructuralLinearActionVarying_type = new entity("IfcStructuralLinearActionVarying", false, 813, IFC2X3_IfcStructuralLinearAction_type); + IFC2X3_IfcStructuralLoadGroup_type = new entity("IfcStructuralLoadGroup", false, 815, IFC2X3_IfcGroup_type); + IFC2X3_IfcStructuralPlanarAction_type = new entity("IfcStructuralPlanarAction", false, 825, IFC2X3_IfcStructuralAction_type); + IFC2X3_IfcStructuralPlanarActionVarying_type = new entity("IfcStructuralPlanarActionVarying", false, 826, IFC2X3_IfcStructuralPlanarAction_type); + IFC2X3_IfcStructuralPointAction_type = new entity("IfcStructuralPointAction", false, 827, IFC2X3_IfcStructuralAction_type); + IFC2X3_IfcStructuralPointConnection_type = new entity("IfcStructuralPointConnection", false, 828, IFC2X3_IfcStructuralConnection_type); + IFC2X3_IfcStructuralPointReaction_type = new entity("IfcStructuralPointReaction", false, 829, IFC2X3_IfcStructuralReaction_type); + IFC2X3_IfcStructuralResultGroup_type = new entity("IfcStructuralResultGroup", false, 832, IFC2X3_IfcGroup_type); + IFC2X3_IfcStructuralSurfaceConnection_type = new entity("IfcStructuralSurfaceConnection", false, 834, IFC2X3_IfcStructuralConnection_type); + IFC2X3_IfcSubContractResource_type = new entity("IfcSubContractResource", false, 842, IFC2X3_IfcConstructionResource_type); + IFC2X3_IfcSwitchingDeviceType_type = new entity("IfcSwitchingDeviceType", false, 862, IFC2X3_IfcFlowControllerType_type); + IFC2X3_IfcSystem_type = new entity("IfcSystem", false, 866, IFC2X3_IfcGroup_type); + IFC2X3_IfcTankType_type = new entity("IfcTankType", false, 870, IFC2X3_IfcFlowStorageDeviceType_type); + IFC2X3_IfcTimeSeriesSchedule_type = new entity("IfcTimeSeriesSchedule", false, 911, IFC2X3_IfcControl_type); + IFC2X3_IfcTransformerType_type = new entity("IfcTransformerType", false, 918, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcTransportElement_type = new entity("IfcTransportElement", false, 921, IFC2X3_IfcElement_type); + IFC2X3_IfcTrimmedCurve_type = new entity("IfcTrimmedCurve", false, 925, IFC2X3_IfcBoundedCurve_type); + IFC2X3_IfcTubeBundleType_type = new entity("IfcTubeBundleType", false, 929, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcUnitaryEquipmentType_type = new entity("IfcUnitaryEquipmentType", false, 935, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcValveType_type = new entity("IfcValveType", false, 941, IFC2X3_IfcFlowControllerType_type); + IFC2X3_IfcVirtualElement_type = new entity("IfcVirtualElement", false, 952, IFC2X3_IfcElement_type); + IFC2X3_IfcWallType_type = new entity("IfcWallType", false, 958, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcWasteTerminalType_type = new entity("IfcWasteTerminalType", false, 962, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcWorkControl_type = new entity("IfcWorkControl", true, 973, IFC2X3_IfcControl_type); + IFC2X3_IfcWorkPlan_type = new entity("IfcWorkPlan", false, 975, IFC2X3_IfcWorkControl_type); + IFC2X3_IfcWorkSchedule_type = new entity("IfcWorkSchedule", false, 976, IFC2X3_IfcWorkControl_type); + IFC2X3_IfcZone_type = new entity("IfcZone", false, 978, IFC2X3_IfcGroup_type); { std::vector items; items.reserve(2); items.push_back(IFC2X3_IfcBoundedCurve_type); @@ -4841,5711 +4841,6541 @@ IfcParse::schema_definition* IFC2X3_populate_schema() { items.push_back(IFC2X3_IfcStructuralItem_type); IFC2X3_IfcStructuralActivityAssignmentSelect_type = new select_type("IfcStructuralActivityAssignmentSelect", 803, items); } - IFC2X3_Ifc2DCompositeCurve_type = new entity("Ifc2DCompositeCurve", 0, IFC2X3_IfcCompositeCurve_type); - IFC2X3_IfcActionRequest_type = new entity("IfcActionRequest", 3, IFC2X3_IfcControl_type); - IFC2X3_IfcAirTerminalBoxType_type = new entity("IfcAirTerminalBoxType", 14, IFC2X3_IfcFlowControllerType_type); - IFC2X3_IfcAirTerminalType_type = new entity("IfcAirTerminalType", 16, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcAirToAirHeatRecoveryType_type = new entity("IfcAirToAirHeatRecoveryType", 18, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcAngularDimension_type = new entity("IfcAngularDimension", 25, IFC2X3_IfcDimensionCurveDirectedCallout_type); - IFC2X3_IfcAsset_type = new entity("IfcAsset", 50, IFC2X3_IfcGroup_type); - IFC2X3_IfcBSplineCurve_type = new entity("IfcBSplineCurve", 80, IFC2X3_IfcBoundedCurve_type); - IFC2X3_IfcBeamType_type = new entity("IfcBeamType", 57, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcBezierCurve_type = new entity("IfcBezierCurve", 60, IFC2X3_IfcBSplineCurve_type); - IFC2X3_IfcBoilerType_type = new entity("IfcBoilerType", 63, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcBuildingElement_type = new entity("IfcBuildingElement", 83, IFC2X3_IfcElement_type); - IFC2X3_IfcBuildingElementComponent_type = new entity("IfcBuildingElementComponent", 84, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcBuildingElementPart_type = new entity("IfcBuildingElementPart", 85, IFC2X3_IfcBuildingElementComponent_type); - IFC2X3_IfcBuildingElementProxy_type = new entity("IfcBuildingElementProxy", 86, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcBuildingElementProxyType_type = new entity("IfcBuildingElementProxyType", 87, IFC2X3_IfcBuildingElementType_type); - IFC2X3_IfcCableCarrierFittingType_type = new entity("IfcCableCarrierFittingType", 91, IFC2X3_IfcFlowFittingType_type); - IFC2X3_IfcCableCarrierSegmentType_type = new entity("IfcCableCarrierSegmentType", 93, IFC2X3_IfcFlowSegmentType_type); - IFC2X3_IfcCableSegmentType_type = new entity("IfcCableSegmentType", 95, IFC2X3_IfcFlowSegmentType_type); - IFC2X3_IfcChillerType_type = new entity("IfcChillerType", 108, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcCircle_type = new entity("IfcCircle", 110, IFC2X3_IfcConic_type); - IFC2X3_IfcCoilType_type = new entity("IfcCoilType", 121, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcColumn_type = new entity("IfcColumn", 127, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcCompressorType_type = new entity("IfcCompressorType", 136, IFC2X3_IfcFlowMovingDeviceType_type); - IFC2X3_IfcCondenserType_type = new entity("IfcCondenserType", 138, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcCondition_type = new entity("IfcCondition", 140, IFC2X3_IfcGroup_type); - IFC2X3_IfcConditionCriterion_type = new entity("IfcConditionCriterion", 141, IFC2X3_IfcControl_type); - IFC2X3_IfcConstructionEquipmentResource_type = new entity("IfcConstructionEquipmentResource", 157, IFC2X3_IfcConstructionResource_type); - IFC2X3_IfcConstructionMaterialResource_type = new entity("IfcConstructionMaterialResource", 158, IFC2X3_IfcConstructionResource_type); - IFC2X3_IfcConstructionProductResource_type = new entity("IfcConstructionProductResource", 159, IFC2X3_IfcConstructionResource_type); - IFC2X3_IfcCooledBeamType_type = new entity("IfcCooledBeamType", 167, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcCoolingTowerType_type = new entity("IfcCoolingTowerType", 169, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcCovering_type = new entity("IfcCovering", 177, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcCurtainWall_type = new entity("IfcCurtainWall", 189, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcDamperType_type = new entity("IfcDamperType", 202, IFC2X3_IfcFlowControllerType_type); - IFC2X3_IfcDiameterDimension_type = new entity("IfcDiameterDimension", 217, IFC2X3_IfcDimensionCurveDirectedCallout_type); - IFC2X3_IfcDiscreteAccessory_type = new entity("IfcDiscreteAccessory", 228, IFC2X3_IfcElementComponent_type); - IFC2X3_IfcDiscreteAccessoryType_type = new entity("IfcDiscreteAccessoryType", 229, IFC2X3_IfcElementComponentType_type); - IFC2X3_IfcDistributionChamberElementType_type = new entity("IfcDistributionChamberElementType", 231, IFC2X3_IfcDistributionFlowElementType_type); - IFC2X3_IfcDistributionControlElementType_type = new entity("IfcDistributionControlElementType", 234, IFC2X3_IfcDistributionElementType_type); - IFC2X3_IfcDistributionElement_type = new entity("IfcDistributionElement", 235, IFC2X3_IfcElement_type); - IFC2X3_IfcDistributionFlowElement_type = new entity("IfcDistributionFlowElement", 237, IFC2X3_IfcDistributionElement_type); - IFC2X3_IfcDistributionPort_type = new entity("IfcDistributionPort", 239, IFC2X3_IfcPort_type); - IFC2X3_IfcDoor_type = new entity("IfcDoor", 247, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcDuctFittingType_type = new entity("IfcDuctFittingType", 262, IFC2X3_IfcFlowFittingType_type); - IFC2X3_IfcDuctSegmentType_type = new entity("IfcDuctSegmentType", 264, IFC2X3_IfcFlowSegmentType_type); - IFC2X3_IfcDuctSilencerType_type = new entity("IfcDuctSilencerType", 266, IFC2X3_IfcFlowTreatmentDeviceType_type); - IFC2X3_IfcEdgeFeature_type = new entity("IfcEdgeFeature", 271, IFC2X3_IfcFeatureElementSubtraction_type); - IFC2X3_IfcElectricApplianceType_type = new entity("IfcElectricApplianceType", 276, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcElectricFlowStorageDeviceType_type = new entity("IfcElectricFlowStorageDeviceType", 285, IFC2X3_IfcFlowStorageDeviceType_type); - IFC2X3_IfcElectricGeneratorType_type = new entity("IfcElectricGeneratorType", 287, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcElectricHeaterType_type = new entity("IfcElectricHeaterType", 289, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcElectricMotorType_type = new entity("IfcElectricMotorType", 291, IFC2X3_IfcEnergyConversionDeviceType_type); - IFC2X3_IfcElectricTimeControlType_type = new entity("IfcElectricTimeControlType", 294, IFC2X3_IfcFlowControllerType_type); - IFC2X3_IfcElectricalCircuit_type = new entity("IfcElectricalCircuit", 274, IFC2X3_IfcSystem_type); - IFC2X3_IfcElectricalElement_type = new entity("IfcElectricalElement", 275, IFC2X3_IfcElement_type); - IFC2X3_IfcEnergyConversionDevice_type = new entity("IfcEnergyConversionDevice", 308, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcFanType_type = new entity("IfcFanType", 336, IFC2X3_IfcFlowMovingDeviceType_type); - IFC2X3_IfcFilterType_type = new entity("IfcFilterType", 349, IFC2X3_IfcFlowTreatmentDeviceType_type); - IFC2X3_IfcFireSuppressionTerminalType_type = new entity("IfcFireSuppressionTerminalType", 351, IFC2X3_IfcFlowTerminalType_type); - IFC2X3_IfcFlowController_type = new entity("IfcFlowController", 353, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcFlowFitting_type = new entity("IfcFlowFitting", 356, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcFlowInstrumentType_type = new entity("IfcFlowInstrumentType", 358, IFC2X3_IfcDistributionControlElementType_type); - IFC2X3_IfcFlowMovingDevice_type = new entity("IfcFlowMovingDevice", 362, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcFlowSegment_type = new entity("IfcFlowSegment", 364, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcFlowStorageDevice_type = new entity("IfcFlowStorageDevice", 366, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcFlowTerminal_type = new entity("IfcFlowTerminal", 368, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcFlowTreatmentDevice_type = new entity("IfcFlowTreatmentDevice", 370, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcFooting_type = new entity("IfcFooting", 376, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcMember_type = new entity("IfcMember", 492, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcPile_type = new entity("IfcPile", 552, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcPlate_type = new entity("IfcPlate", 566, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcRailing_type = new entity("IfcRailing", 642, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcRamp_type = new entity("IfcRamp", 645, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcRampFlight_type = new entity("IfcRampFlight", 646, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcRationalBezierCurve_type = new entity("IfcRationalBezierCurve", 651, IFC2X3_IfcBezierCurve_type); - IFC2X3_IfcReinforcingElement_type = new entity("IfcReinforcingElement", 665, IFC2X3_IfcBuildingElementComponent_type); - IFC2X3_IfcReinforcingMesh_type = new entity("IfcReinforcingMesh", 666, IFC2X3_IfcReinforcingElement_type); - IFC2X3_IfcRoof_type = new entity("IfcRoof", 730, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcRoundedEdgeFeature_type = new entity("IfcRoundedEdgeFeature", 736, IFC2X3_IfcEdgeFeature_type); - IFC2X3_IfcSensorType_type = new entity("IfcSensorType", 748, IFC2X3_IfcDistributionControlElementType_type); - IFC2X3_IfcSlab_type = new entity("IfcSlab", 768, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcStair_type = new entity("IfcStair", 795, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcStairFlight_type = new entity("IfcStairFlight", 796, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcStructuralAnalysisModel_type = new entity("IfcStructuralAnalysisModel", 804, IFC2X3_IfcSystem_type); - IFC2X3_IfcTendon_type = new entity("IfcTendon", 875, IFC2X3_IfcReinforcingElement_type); - IFC2X3_IfcTendonAnchor_type = new entity("IfcTendonAnchor", 876, IFC2X3_IfcReinforcingElement_type); - IFC2X3_IfcVibrationIsolatorType_type = new entity("IfcVibrationIsolatorType", 950, IFC2X3_IfcDiscreteAccessoryType_type); - IFC2X3_IfcWall_type = new entity("IfcWall", 956, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcWallStandardCase_type = new entity("IfcWallStandardCase", 957, IFC2X3_IfcWall_type); - IFC2X3_IfcWindow_type = new entity("IfcWindow", 965, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcActuatorType_type = new entity("IfcActuatorType", 9, IFC2X3_IfcDistributionControlElementType_type); - IFC2X3_IfcAlarmType_type = new entity("IfcAlarmType", 20, IFC2X3_IfcDistributionControlElementType_type); - IFC2X3_IfcBeam_type = new entity("IfcBeam", 56, IFC2X3_IfcBuildingElement_type); - IFC2X3_IfcChamferEdgeFeature_type = new entity("IfcChamferEdgeFeature", 105, IFC2X3_IfcEdgeFeature_type); - IFC2X3_IfcControllerType_type = new entity("IfcControllerType", 164, IFC2X3_IfcDistributionControlElementType_type); - IFC2X3_IfcDistributionChamberElement_type = new entity("IfcDistributionChamberElement", 230, IFC2X3_IfcDistributionFlowElement_type); - IFC2X3_IfcDistributionControlElement_type = new entity("IfcDistributionControlElement", 233, IFC2X3_IfcDistributionElement_type); - IFC2X3_IfcElectricDistributionPoint_type = new entity("IfcElectricDistributionPoint", 283, IFC2X3_IfcFlowController_type); - IFC2X3_IfcReinforcingBar_type = new entity("IfcReinforcingBar", 662, IFC2X3_IfcReinforcingElement_type); + IFC2X3_Ifc2DCompositeCurve_type = new entity("Ifc2DCompositeCurve", false, 0, IFC2X3_IfcCompositeCurve_type); + IFC2X3_IfcActionRequest_type = new entity("IfcActionRequest", false, 3, IFC2X3_IfcControl_type); + IFC2X3_IfcAirTerminalBoxType_type = new entity("IfcAirTerminalBoxType", false, 14, IFC2X3_IfcFlowControllerType_type); + IFC2X3_IfcAirTerminalType_type = new entity("IfcAirTerminalType", false, 16, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcAirToAirHeatRecoveryType_type = new entity("IfcAirToAirHeatRecoveryType", false, 18, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcAngularDimension_type = new entity("IfcAngularDimension", false, 25, IFC2X3_IfcDimensionCurveDirectedCallout_type); + IFC2X3_IfcAsset_type = new entity("IfcAsset", false, 50, IFC2X3_IfcGroup_type); + IFC2X3_IfcBSplineCurve_type = new entity("IfcBSplineCurve", true, 80, IFC2X3_IfcBoundedCurve_type); + IFC2X3_IfcBeamType_type = new entity("IfcBeamType", false, 57, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcBezierCurve_type = new entity("IfcBezierCurve", false, 60, IFC2X3_IfcBSplineCurve_type); + IFC2X3_IfcBoilerType_type = new entity("IfcBoilerType", false, 63, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcBuildingElement_type = new entity("IfcBuildingElement", true, 83, IFC2X3_IfcElement_type); + IFC2X3_IfcBuildingElementComponent_type = new entity("IfcBuildingElementComponent", true, 84, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcBuildingElementPart_type = new entity("IfcBuildingElementPart", false, 85, IFC2X3_IfcBuildingElementComponent_type); + IFC2X3_IfcBuildingElementProxy_type = new entity("IfcBuildingElementProxy", false, 86, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcBuildingElementProxyType_type = new entity("IfcBuildingElementProxyType", false, 87, IFC2X3_IfcBuildingElementType_type); + IFC2X3_IfcCableCarrierFittingType_type = new entity("IfcCableCarrierFittingType", false, 91, IFC2X3_IfcFlowFittingType_type); + IFC2X3_IfcCableCarrierSegmentType_type = new entity("IfcCableCarrierSegmentType", false, 93, IFC2X3_IfcFlowSegmentType_type); + IFC2X3_IfcCableSegmentType_type = new entity("IfcCableSegmentType", false, 95, IFC2X3_IfcFlowSegmentType_type); + IFC2X3_IfcChillerType_type = new entity("IfcChillerType", false, 108, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcCircle_type = new entity("IfcCircle", false, 110, IFC2X3_IfcConic_type); + IFC2X3_IfcCoilType_type = new entity("IfcCoilType", false, 121, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcColumn_type = new entity("IfcColumn", false, 127, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcCompressorType_type = new entity("IfcCompressorType", false, 136, IFC2X3_IfcFlowMovingDeviceType_type); + IFC2X3_IfcCondenserType_type = new entity("IfcCondenserType", false, 138, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcCondition_type = new entity("IfcCondition", false, 140, IFC2X3_IfcGroup_type); + IFC2X3_IfcConditionCriterion_type = new entity("IfcConditionCriterion", false, 141, IFC2X3_IfcControl_type); + IFC2X3_IfcConstructionEquipmentResource_type = new entity("IfcConstructionEquipmentResource", false, 157, IFC2X3_IfcConstructionResource_type); + IFC2X3_IfcConstructionMaterialResource_type = new entity("IfcConstructionMaterialResource", false, 158, IFC2X3_IfcConstructionResource_type); + IFC2X3_IfcConstructionProductResource_type = new entity("IfcConstructionProductResource", false, 159, IFC2X3_IfcConstructionResource_type); + IFC2X3_IfcCooledBeamType_type = new entity("IfcCooledBeamType", false, 167, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcCoolingTowerType_type = new entity("IfcCoolingTowerType", false, 169, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcCovering_type = new entity("IfcCovering", false, 177, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcCurtainWall_type = new entity("IfcCurtainWall", false, 189, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcDamperType_type = new entity("IfcDamperType", false, 202, IFC2X3_IfcFlowControllerType_type); + IFC2X3_IfcDiameterDimension_type = new entity("IfcDiameterDimension", false, 217, IFC2X3_IfcDimensionCurveDirectedCallout_type); + IFC2X3_IfcDiscreteAccessory_type = new entity("IfcDiscreteAccessory", false, 228, IFC2X3_IfcElementComponent_type); + IFC2X3_IfcDiscreteAccessoryType_type = new entity("IfcDiscreteAccessoryType", false, 229, IFC2X3_IfcElementComponentType_type); + IFC2X3_IfcDistributionChamberElementType_type = new entity("IfcDistributionChamberElementType", false, 231, IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcDistributionControlElementType_type = new entity("IfcDistributionControlElementType", true, 234, IFC2X3_IfcDistributionElementType_type); + IFC2X3_IfcDistributionElement_type = new entity("IfcDistributionElement", false, 235, IFC2X3_IfcElement_type); + IFC2X3_IfcDistributionFlowElement_type = new entity("IfcDistributionFlowElement", false, 237, IFC2X3_IfcDistributionElement_type); + IFC2X3_IfcDistributionPort_type = new entity("IfcDistributionPort", false, 239, IFC2X3_IfcPort_type); + IFC2X3_IfcDoor_type = new entity("IfcDoor", false, 247, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcDuctFittingType_type = new entity("IfcDuctFittingType", false, 262, IFC2X3_IfcFlowFittingType_type); + IFC2X3_IfcDuctSegmentType_type = new entity("IfcDuctSegmentType", false, 264, IFC2X3_IfcFlowSegmentType_type); + IFC2X3_IfcDuctSilencerType_type = new entity("IfcDuctSilencerType", false, 266, IFC2X3_IfcFlowTreatmentDeviceType_type); + IFC2X3_IfcEdgeFeature_type = new entity("IfcEdgeFeature", true, 271, IFC2X3_IfcFeatureElementSubtraction_type); + IFC2X3_IfcElectricApplianceType_type = new entity("IfcElectricApplianceType", false, 276, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcElectricFlowStorageDeviceType_type = new entity("IfcElectricFlowStorageDeviceType", false, 285, IFC2X3_IfcFlowStorageDeviceType_type); + IFC2X3_IfcElectricGeneratorType_type = new entity("IfcElectricGeneratorType", false, 287, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcElectricHeaterType_type = new entity("IfcElectricHeaterType", false, 289, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcElectricMotorType_type = new entity("IfcElectricMotorType", false, 291, IFC2X3_IfcEnergyConversionDeviceType_type); + IFC2X3_IfcElectricTimeControlType_type = new entity("IfcElectricTimeControlType", false, 294, IFC2X3_IfcFlowControllerType_type); + IFC2X3_IfcElectricalCircuit_type = new entity("IfcElectricalCircuit", false, 274, IFC2X3_IfcSystem_type); + IFC2X3_IfcElectricalElement_type = new entity("IfcElectricalElement", false, 275, IFC2X3_IfcElement_type); + IFC2X3_IfcEnergyConversionDevice_type = new entity("IfcEnergyConversionDevice", false, 308, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcFanType_type = new entity("IfcFanType", false, 336, IFC2X3_IfcFlowMovingDeviceType_type); + IFC2X3_IfcFilterType_type = new entity("IfcFilterType", false, 349, IFC2X3_IfcFlowTreatmentDeviceType_type); + IFC2X3_IfcFireSuppressionTerminalType_type = new entity("IfcFireSuppressionTerminalType", false, 351, IFC2X3_IfcFlowTerminalType_type); + IFC2X3_IfcFlowController_type = new entity("IfcFlowController", false, 353, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcFlowFitting_type = new entity("IfcFlowFitting", false, 356, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcFlowInstrumentType_type = new entity("IfcFlowInstrumentType", false, 358, IFC2X3_IfcDistributionControlElementType_type); + IFC2X3_IfcFlowMovingDevice_type = new entity("IfcFlowMovingDevice", false, 362, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcFlowSegment_type = new entity("IfcFlowSegment", false, 364, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcFlowStorageDevice_type = new entity("IfcFlowStorageDevice", false, 366, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcFlowTerminal_type = new entity("IfcFlowTerminal", false, 368, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcFlowTreatmentDevice_type = new entity("IfcFlowTreatmentDevice", false, 370, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcFooting_type = new entity("IfcFooting", false, 376, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcMember_type = new entity("IfcMember", false, 492, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcPile_type = new entity("IfcPile", false, 552, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcPlate_type = new entity("IfcPlate", false, 566, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcRailing_type = new entity("IfcRailing", false, 642, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcRamp_type = new entity("IfcRamp", false, 645, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcRampFlight_type = new entity("IfcRampFlight", false, 646, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcRationalBezierCurve_type = new entity("IfcRationalBezierCurve", false, 651, IFC2X3_IfcBezierCurve_type); + IFC2X3_IfcReinforcingElement_type = new entity("IfcReinforcingElement", true, 665, IFC2X3_IfcBuildingElementComponent_type); + IFC2X3_IfcReinforcingMesh_type = new entity("IfcReinforcingMesh", false, 666, IFC2X3_IfcReinforcingElement_type); + IFC2X3_IfcRoof_type = new entity("IfcRoof", false, 730, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcRoundedEdgeFeature_type = new entity("IfcRoundedEdgeFeature", false, 736, IFC2X3_IfcEdgeFeature_type); + IFC2X3_IfcSensorType_type = new entity("IfcSensorType", false, 748, IFC2X3_IfcDistributionControlElementType_type); + IFC2X3_IfcSlab_type = new entity("IfcSlab", false, 768, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcStair_type = new entity("IfcStair", false, 795, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcStairFlight_type = new entity("IfcStairFlight", false, 796, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcStructuralAnalysisModel_type = new entity("IfcStructuralAnalysisModel", false, 804, IFC2X3_IfcSystem_type); + IFC2X3_IfcTendon_type = new entity("IfcTendon", false, 875, IFC2X3_IfcReinforcingElement_type); + IFC2X3_IfcTendonAnchor_type = new entity("IfcTendonAnchor", false, 876, IFC2X3_IfcReinforcingElement_type); + IFC2X3_IfcVibrationIsolatorType_type = new entity("IfcVibrationIsolatorType", false, 950, IFC2X3_IfcDiscreteAccessoryType_type); + IFC2X3_IfcWall_type = new entity("IfcWall", false, 956, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcWallStandardCase_type = new entity("IfcWallStandardCase", false, 957, IFC2X3_IfcWall_type); + IFC2X3_IfcWindow_type = new entity("IfcWindow", false, 965, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcActuatorType_type = new entity("IfcActuatorType", false, 9, IFC2X3_IfcDistributionControlElementType_type); + IFC2X3_IfcAlarmType_type = new entity("IfcAlarmType", false, 20, IFC2X3_IfcDistributionControlElementType_type); + IFC2X3_IfcBeam_type = new entity("IfcBeam", false, 56, IFC2X3_IfcBuildingElement_type); + IFC2X3_IfcChamferEdgeFeature_type = new entity("IfcChamferEdgeFeature", false, 105, IFC2X3_IfcEdgeFeature_type); + IFC2X3_IfcControllerType_type = new entity("IfcControllerType", false, 164, IFC2X3_IfcDistributionControlElementType_type); + IFC2X3_IfcDistributionChamberElement_type = new entity("IfcDistributionChamberElement", false, 230, IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcDistributionControlElement_type = new entity("IfcDistributionControlElement", false, 233, IFC2X3_IfcDistributionElement_type); + IFC2X3_IfcElectricDistributionPoint_type = new entity("IfcElectricDistributionPoint", false, 283, IFC2X3_IfcFlowController_type); + IFC2X3_IfcReinforcingBar_type = new entity("IfcReinforcingBar", false, 662, IFC2X3_IfcReinforcingElement_type); { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_Ifc2DCompositeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RequestID", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RequestID", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcActionRequest_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TheActor", new named_type(IFC2X3_IfcActorSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TheActor", new named_type(IFC2X3_IfcActorSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcActor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Role", new named_type(IFC2X3_IfcRoleEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedRole", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Role", new named_type(IFC2X3_IfcRoleEnum_type), false)); + attributes.push_back(new attribute("UserDefinedRole", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcActorRole_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcActuatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcActuatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcActuatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC2X3_IfcAddressTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPurpose", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Purpose", new named_type(IFC2X3_IfcAddressTypeEnum_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("UserDefinedPurpose", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAirTerminalBoxTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAirTerminalBoxTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAirTerminalBoxType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAirTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAirTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAirTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAirToAirHeatRecoveryTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAirToAirHeatRecoveryTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAirToAirHeatRecoveryType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAlarmTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAlarmTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAlarmType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcAngularDimension_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationCurveOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OuterBoundary", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCurve_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OuterBoundary", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCurve_type)), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationFillArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("FillStyleTarget", new named_type(IFC2X3_IfcPoint_type), true)); - attributes.push_back(new entity::attribute("GlobalOrLocal", new named_type(IFC2X3_IfcGlobalOrLocalEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("FillStyleTarget", new named_type(IFC2X3_IfcPoint_type), true)); + attributes.push_back(new attribute("GlobalOrLocal", new named_type(IFC2X3_IfcGlobalOrLocalEnum_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationFillAreaOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Item", new named_type(IFC2X3_IfcGeometricRepresentationItem_type), false)); - attributes.push_back(new entity::attribute("TextureCoordinates", new named_type(IFC2X3_IfcTextureCoordinate_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Item", new named_type(IFC2X3_IfcGeometricRepresentationItem_type), false)); + attributes.push_back(new attribute("TextureCoordinates", new named_type(IFC2X3_IfcTextureCoordinate_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationSurfaceOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationSymbolOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationTextOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ApplicationDeveloper", new named_type(IFC2X3_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("Version", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ApplicationFullName", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ApplicationIdentifier", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ApplicationDeveloper", new named_type(IFC2X3_IfcOrganization_type), false)); + attributes.push_back(new attribute("Version", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("ApplicationFullName", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("ApplicationIdentifier", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApplication_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("AppliedValue", new named_type(IFC2X3_IfcAppliedValueSelect_type), true)); - attributes.push_back(new entity::attribute("UnitBasis", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); - attributes.push_back(new entity::attribute("ApplicableDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("FixedUntilDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("AppliedValue", new named_type(IFC2X3_IfcAppliedValueSelect_type), true)); + attributes.push_back(new attribute("UnitBasis", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); + attributes.push_back(new attribute("ApplicableDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("FixedUntilDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAppliedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ComponentOfTotal", new named_type(IFC2X3_IfcAppliedValue_type), false)); - attributes.push_back(new entity::attribute("Components", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcAppliedValue_type)), false)); - attributes.push_back(new entity::attribute("ArithmeticOperator", new named_type(IFC2X3_IfcArithmeticOperatorEnum_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ComponentOfTotal", new named_type(IFC2X3_IfcAppliedValue_type), false)); + attributes.push_back(new attribute("Components", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcAppliedValue_type)), false)); + attributes.push_back(new attribute("ArithmeticOperator", new named_type(IFC2X3_IfcArithmeticOperatorEnum_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAppliedValueRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("ApprovalDateTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("ApprovalStatus", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ApprovalLevel", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ApprovalQualifier", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("ApprovalDateTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("ApprovalStatus", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ApprovalLevel", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ApprovalQualifier", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApproval_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Actor", new named_type(IFC2X3_IfcActorSelect_type), false)); - attributes.push_back(new entity::attribute("Approval", new named_type(IFC2X3_IfcApproval_type), false)); - attributes.push_back(new entity::attribute("Role", new named_type(IFC2X3_IfcActorRole_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Actor", new named_type(IFC2X3_IfcActorSelect_type), false)); + attributes.push_back(new attribute("Approval", new named_type(IFC2X3_IfcApproval_type), false)); + attributes.push_back(new attribute("Role", new named_type(IFC2X3_IfcActorRole_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApprovalActorRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ApprovedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); - attributes.push_back(new entity::attribute("Approval", new named_type(IFC2X3_IfcApproval_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ApprovedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + attributes.push_back(new attribute("Approval", new named_type(IFC2X3_IfcApproval_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApprovalPropertyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatedApproval", new named_type(IFC2X3_IfcApproval_type), false)); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC2X3_IfcApproval_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatedApproval", new named_type(IFC2X3_IfcApproval_type), false)); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC2X3_IfcApproval_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApprovalRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("OuterCurve", new named_type(IFC2X3_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("OuterCurve", new named_type(IFC2X3_IfcCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcArbitraryClosedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Curve", new named_type(IFC2X3_IfcBoundedCurve_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Curve", new named_type(IFC2X3_IfcBoundedCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcArbitraryOpenProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("InnerCurves", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCurve_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("InnerCurves", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCurve_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcArbitraryProfileDefWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("AssetID", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("OriginalValue", new named_type(IFC2X3_IfcCostValue_type), false)); - attributes.push_back(new entity::attribute("CurrentValue", new named_type(IFC2X3_IfcCostValue_type), false)); - attributes.push_back(new entity::attribute("TotalReplacementCost", new named_type(IFC2X3_IfcCostValue_type), false)); - attributes.push_back(new entity::attribute("Owner", new named_type(IFC2X3_IfcActorSelect_type), false)); - attributes.push_back(new entity::attribute("User", new named_type(IFC2X3_IfcActorSelect_type), false)); - attributes.push_back(new entity::attribute("ResponsiblePerson", new named_type(IFC2X3_IfcPerson_type), false)); - attributes.push_back(new entity::attribute("IncorporationDate", new named_type(IFC2X3_IfcCalendarDate_type), false)); - attributes.push_back(new entity::attribute("DepreciatedValue", new named_type(IFC2X3_IfcCostValue_type), false)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("AssetID", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("OriginalValue", new named_type(IFC2X3_IfcCostValue_type), false)); + attributes.push_back(new attribute("CurrentValue", new named_type(IFC2X3_IfcCostValue_type), false)); + attributes.push_back(new attribute("TotalReplacementCost", new named_type(IFC2X3_IfcCostValue_type), false)); + attributes.push_back(new attribute("Owner", new named_type(IFC2X3_IfcActorSelect_type), false)); + attributes.push_back(new attribute("User", new named_type(IFC2X3_IfcActorSelect_type), false)); + attributes.push_back(new attribute("ResponsiblePerson", new named_type(IFC2X3_IfcPerson_type), false)); + attributes.push_back(new attribute("IncorporationDate", new named_type(IFC2X3_IfcCalendarDate_type), false)); + attributes.push_back(new attribute("DepreciatedValue", new named_type(IFC2X3_IfcCostValue_type), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAsset_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("TopFlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopFlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("TopFlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopFlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAsymmetricIShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAxis1Placement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAxis2Placement2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC2X3_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Axis", new named_type(IFC2X3_IfcDirection_type), true)); + attributes.push_back(new attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAxis2Placement3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Degree", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); - attributes.push_back(new entity::attribute("CurveForm", new named_type(IFC2X3_IfcBSplineCurveForm_type), false)); - attributes.push_back(new entity::attribute("ClosedCurve", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Degree", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); + attributes.push_back(new attribute("CurveForm", new named_type(IFC2X3_IfcBSplineCurveForm_type), false)); + attributes.push_back(new attribute("ClosedCurve", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBSplineCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBeam_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcBeamTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcBeamTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBeamType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBezierCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RasterFormat", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("RasterCode", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RasterFormat", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("RasterCode", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBlobTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("XLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ZLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("XLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ZLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBlock_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcBoilerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcBoilerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoilerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBooleanClippingResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Operator", new named_type(IFC2X3_IfcBooleanOperator_type), false)); - attributes.push_back(new entity::attribute("FirstOperand", new named_type(IFC2X3_IfcBooleanOperand_type), false)); - attributes.push_back(new entity::attribute("SecondOperand", new named_type(IFC2X3_IfcBooleanOperand_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Operator", new named_type(IFC2X3_IfcBooleanOperator_type), false)); + attributes.push_back(new attribute("FirstOperand", new named_type(IFC2X3_IfcBooleanOperand_type), false)); + attributes.push_back(new attribute("SecondOperand", new named_type(IFC2X3_IfcBooleanOperand_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBooleanResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcBoundaryCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LinearStiffnessByLengthX", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessByLengthY", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessByLengthZ", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthX", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthY", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthZ", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LinearStiffnessByLengthX", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessByLengthY", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessByLengthZ", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthX", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthY", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthZ", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundaryEdgeCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("LinearStiffnessByAreaX", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessByAreaY", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessByAreaZ", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("LinearStiffnessByAreaX", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessByAreaY", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessByAreaZ", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundaryFaceCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LinearStiffnessX", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessY", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessZ", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessX", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessY", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessZ", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LinearStiffnessX", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessY", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessZ", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessX", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessY", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessZ", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundaryNodeCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WarpingStiffness", new named_type(IFC2X3_IfcWarpingMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WarpingStiffness", new named_type(IFC2X3_IfcWarpingMomentMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundaryNodeConditionWarping_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcBoundedCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcBoundedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Corner", new named_type(IFC2X3_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("XDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ZDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Corner", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("XDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ZDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundingBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Enclosure", new named_type(IFC2X3_IfcBoundingBox_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Enclosure", new named_type(IFC2X3_IfcBoundingBox_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoxedHalfSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ElevationOfRefHeight", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ElevationOfTerrain", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BuildingAddress", new named_type(IFC2X3_IfcPostalAddress_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ElevationOfRefHeight", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ElevationOfTerrain", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("BuildingAddress", new named_type(IFC2X3_IfcPostalAddress_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuilding_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementComponent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementPart_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CompositionType", new named_type(IFC2X3_IfcElementCompositionEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CompositionType", new named_type(IFC2X3_IfcElementCompositionEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementProxy_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcBuildingElementProxyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcBuildingElementProxyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementProxyType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Elevation", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Elevation", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingStorey_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Girth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InternalFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Girth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InternalFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCableCarrierFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCableCarrierFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCableCarrierFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCableCarrierSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCableCarrierSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCableCarrierSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCableSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCableSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCableSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("DayComponent", new named_type(IFC2X3_IfcDayInMonthNumber_type), false)); - attributes.push_back(new entity::attribute("MonthComponent", new named_type(IFC2X3_IfcMonthInYearNumber_type), false)); - attributes.push_back(new entity::attribute("YearComponent", new named_type(IFC2X3_IfcYearNumber_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("DayComponent", new named_type(IFC2X3_IfcDayInMonthNumber_type), false)); + attributes.push_back(new attribute("MonthComponent", new named_type(IFC2X3_IfcMonthInYearNumber_type), false)); + attributes.push_back(new attribute("YearComponent", new named_type(IFC2X3_IfcYearNumber_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCalendarDate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC2X3_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC2X3_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcCartesianPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Axis1", new named_type(IFC2X3_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("Axis2", new named_type(IFC2X3_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("LocalOrigin", new named_type(IFC2X3_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Scale", new simple_type(simple_type::real_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Axis1", new named_type(IFC2X3_IfcDirection_type), true)); + attributes.push_back(new attribute("Axis2", new named_type(IFC2X3_IfcDirection_type), true)); + attributes.push_back(new attribute("LocalOrigin", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Scale", new simple_type(simple_type::real_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Scale2", new simple_type(simple_type::real_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Scale2", new simple_type(simple_type::real_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator2DnonUniform_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis3", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis3", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Scale2", new simple_type(simple_type::real_type), true)); - attributes.push_back(new entity::attribute("Scale3", new simple_type(simple_type::real_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Scale2", new simple_type(simple_type::real_type), true)); + attributes.push_back(new attribute("Scale3", new simple_type(simple_type::real_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator3DnonUniform_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCenterLineProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcChamferEdgeFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcChillerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcChillerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcChillerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCircle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCircleHollowProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCircleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Source", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Edition", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("EditionDate", new named_type(IFC2X3_IfcCalendarDate_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Source", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Edition", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("EditionDate", new named_type(IFC2X3_IfcCalendarDate_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcClassification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Notation", new named_type(IFC2X3_IfcClassificationNotationFacet_type), false)); - attributes.push_back(new entity::attribute("ItemOf", new named_type(IFC2X3_IfcClassification_type), true)); - attributes.push_back(new entity::attribute("Title", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Notation", new named_type(IFC2X3_IfcClassificationNotationFacet_type), false)); + attributes.push_back(new attribute("ItemOf", new named_type(IFC2X3_IfcClassification_type), true)); + attributes.push_back(new attribute("Title", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcClassificationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingItem", new named_type(IFC2X3_IfcClassificationItem_type), false)); - attributes.push_back(new entity::attribute("RelatedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationItem_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingItem", new named_type(IFC2X3_IfcClassificationItem_type), false)); + attributes.push_back(new attribute("RelatedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationItem_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcClassificationItemRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("NotationFacets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationFacet_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("NotationFacets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationFacet_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcClassificationNotation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("NotationValue", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("NotationValue", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcClassificationNotationFacet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ReferencedSource", new named_type(IFC2X3_IfcClassification_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ReferencedSource", new named_type(IFC2X3_IfcClassification_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcClassificationReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcClosedShell_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCoilTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCoilTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCoilType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Red", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("Green", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("Blue", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Red", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("Green", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("Blue", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcColourRgb_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcColourSpecification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcColumn_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcColumnTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcColumnTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcColumnType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("UsageName", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcComplexProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcCompositeCurveSegment_type)), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcCompositeCurveSegment_type)), false)); + attributes.push_back(new attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCompositeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Transition", new named_type(IFC2X3_IfcTransitionCode_type), false)); - attributes.push_back(new entity::attribute("SameSense", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("ParentCurve", new named_type(IFC2X3_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Transition", new named_type(IFC2X3_IfcTransitionCode_type), false)); + attributes.push_back(new attribute("SameSense", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("ParentCurve", new named_type(IFC2X3_IfcCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCompositeCurveSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Profiles", new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC2X3_IfcProfileDef_type)), false)); - attributes.push_back(new entity::attribute("Label", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Profiles", new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC2X3_IfcProfileDef_type)), false)); + attributes.push_back(new attribute("Label", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCompositeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCompressorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCompressorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCompressorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCondenserTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCondenserTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCondenserType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Criterion", new named_type(IFC2X3_IfcConditionCriterionSelect_type), false)); - attributes.push_back(new entity::attribute("CriterionDateTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Criterion", new named_type(IFC2X3_IfcConditionCriterionSelect_type), false)); + attributes.push_back(new attribute("CriterionDateTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConditionCriterion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcConic_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CfsFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFace_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CfsFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFace_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcConnectedFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CurveOnRelatingElement", new named_type(IFC2X3_IfcCurveOrEdgeCurve_type), false)); - attributes.push_back(new entity::attribute("CurveOnRelatedElement", new named_type(IFC2X3_IfcCurveOrEdgeCurve_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("CurveOnRelatingElement", new named_type(IFC2X3_IfcCurveOrEdgeCurve_type), false)); + attributes.push_back(new attribute("CurveOnRelatedElement", new named_type(IFC2X3_IfcCurveOrEdgeCurve_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionCurveGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcConnectionGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("EccentricityInX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EccentricityInY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EccentricityInZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("EccentricityInX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("EccentricityInY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("EccentricityInZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionPointEccentricity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PointOnRelatingElement", new named_type(IFC2X3_IfcPointOrVertexPoint_type), false)); - attributes.push_back(new entity::attribute("PointOnRelatedElement", new named_type(IFC2X3_IfcPointOrVertexPoint_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PointOnRelatingElement", new named_type(IFC2X3_IfcPointOrVertexPoint_type), false)); + attributes.push_back(new attribute("PointOnRelatedElement", new named_type(IFC2X3_IfcPointOrVertexPoint_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionPointGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("LocationAtRelatingElement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("LocationAtRelatedElement", new named_type(IFC2X3_IfcAxis2Placement_type), true)); - attributes.push_back(new entity::attribute("ProfileOfPort", new named_type(IFC2X3_IfcProfileDef_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("LocationAtRelatingElement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("LocationAtRelatedElement", new named_type(IFC2X3_IfcAxis2Placement_type), true)); + attributes.push_back(new attribute("ProfileOfPort", new named_type(IFC2X3_IfcProfileDef_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionPortGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SurfaceOnRelatingElement", new named_type(IFC2X3_IfcSurfaceOrFaceSurface_type), false)); - attributes.push_back(new entity::attribute("SurfaceOnRelatedElement", new named_type(IFC2X3_IfcSurfaceOrFaceSurface_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SurfaceOnRelatingElement", new named_type(IFC2X3_IfcSurfaceOrFaceSurface_type), false)); + attributes.push_back(new attribute("SurfaceOnRelatedElement", new named_type(IFC2X3_IfcSurfaceOrFaceSurface_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionSurfaceGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("ConstraintGrade", new named_type(IFC2X3_IfcConstraintEnum_type), false)); - attributes.push_back(new entity::attribute("ConstraintSource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CreatingActor", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("CreationTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("UserDefinedGrade", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("ConstraintGrade", new named_type(IFC2X3_IfcConstraintEnum_type), false)); + attributes.push_back(new attribute("ConstraintSource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("CreatingActor", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("CreationTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("UserDefinedGrade", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstraint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedConstraints", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcConstraint_type)), false)); - attributes.push_back(new entity::attribute("LogicalAggregator", new named_type(IFC2X3_IfcLogicalOperatorEnum_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedConstraints", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcConstraint_type)), false)); + attributes.push_back(new attribute("LogicalAggregator", new named_type(IFC2X3_IfcLogicalOperatorEnum_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstraintAggregationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ClassifiedConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ClassifiedConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationSelect_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstraintClassificationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedConstraints", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcConstraint_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedConstraints", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcConstraint_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstraintRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstructionEquipmentResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Suppliers", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); - attributes.push_back(new entity::attribute("UsageRatio", new named_type(IFC2X3_IfcRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Suppliers", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); + attributes.push_back(new attribute("UsageRatio", new named_type(IFC2X3_IfcRatioMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstructionMaterialResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstructionProductResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ResourceIdentifier", new named_type(IFC2X3_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("ResourceGroup", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ResourceConsumption", new named_type(IFC2X3_IfcResourceConsumptionEnum_type), true)); - attributes.push_back(new entity::attribute("BaseQuantity", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ResourceIdentifier", new named_type(IFC2X3_IfcIdentifier_type), true)); + attributes.push_back(new attribute("ResourceGroup", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ResourceConsumption", new named_type(IFC2X3_IfcResourceConsumptionEnum_type), true)); + attributes.push_back(new attribute("BaseQuantity", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstructionResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcContextDependentUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcControllerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcControllerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcControllerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ConversionFactor", new named_type(IFC2X3_IfcMeasureWithUnit_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("ConversionFactor", new named_type(IFC2X3_IfcMeasureWithUnit_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConversionBasedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCooledBeamTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCooledBeamTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCooledBeamType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCoolingTowerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCoolingTowerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCoolingTowerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("HourOffset", new named_type(IFC2X3_IfcHourInDay_type), false)); - attributes.push_back(new entity::attribute("MinuteOffset", new named_type(IFC2X3_IfcMinuteInHour_type), true)); - attributes.push_back(new entity::attribute("Sense", new named_type(IFC2X3_IfcAheadOrBehind_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("HourOffset", new named_type(IFC2X3_IfcHourInDay_type), false)); + attributes.push_back(new attribute("MinuteOffset", new named_type(IFC2X3_IfcMinuteInHour_type), true)); + attributes.push_back(new attribute("Sense", new named_type(IFC2X3_IfcAheadOrBehind_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCoordinatedUniversalTimeOffset_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCostItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("SubmittedBy", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("PreparedBy", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("SubmittedOn", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("TargetUsers", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); - attributes.push_back(new entity::attribute("UpdateDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ID", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCostScheduleTypeEnum_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("SubmittedBy", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("PreparedBy", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("SubmittedOn", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("TargetUsers", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); + attributes.push_back(new attribute("UpdateDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ID", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCostScheduleTypeEnum_type), false)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCostSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CostType", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Condition", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("CostType", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Condition", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCostValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCoveringTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCoveringTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCovering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCoveringTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCoveringTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCoveringType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseWidth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("HeadWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("HeadDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("HeadDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseWidth4", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseWidth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("HeadWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("HeadDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("HeadDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseWidth4", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCraneRailAShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("HeadWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("HeadDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("HeadDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("HeadWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("HeadDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("HeadDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCraneRailFShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCrewResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcCsgPrimitive3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TreeRootExpression", new named_type(IFC2X3_IfcCsgSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TreeRootExpression", new named_type(IFC2X3_IfcCsgSelect_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcCsgSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingMonetaryUnit", new named_type(IFC2X3_IfcMonetaryUnit_type), false)); - attributes.push_back(new entity::attribute("RelatedMonetaryUnit", new named_type(IFC2X3_IfcMonetaryUnit_type), false)); - attributes.push_back(new entity::attribute("ExchangeRate", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("RateDateTime", new named_type(IFC2X3_IfcDateAndTime_type), false)); - attributes.push_back(new entity::attribute("RateSource", new named_type(IFC2X3_IfcLibraryInformation_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingMonetaryUnit", new named_type(IFC2X3_IfcMonetaryUnit_type), false)); + attributes.push_back(new attribute("RelatedMonetaryUnit", new named_type(IFC2X3_IfcMonetaryUnit_type), false)); + attributes.push_back(new attribute("ExchangeRate", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); + attributes.push_back(new attribute("RateDateTime", new named_type(IFC2X3_IfcDateAndTime_type), false)); + attributes.push_back(new attribute("RateSource", new named_type(IFC2X3_IfcLibraryInformation_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurrencyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurtainWall_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCurtainWallTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCurtainWallTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurtainWallType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC2X3_IfcPlane_type), false)); - attributes.push_back(new entity::attribute("OuterBoundary", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC2X3_IfcCurve_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC2X3_IfcPlane_type), false)); + attributes.push_back(new attribute("OuterBoundary", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC2X3_IfcCurve_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveBoundedPlane_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("CurveFont", new named_type(IFC2X3_IfcCurveFontOrScaledCurveFontSelect_type), true)); - attributes.push_back(new entity::attribute("CurveWidth", new named_type(IFC2X3_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("CurveColour", new named_type(IFC2X3_IfcColour_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("CurveFont", new named_type(IFC2X3_IfcCurveFontOrScaledCurveFontSelect_type), true)); + attributes.push_back(new attribute("CurveWidth", new named_type(IFC2X3_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("CurveColour", new named_type(IFC2X3_IfcColour_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PatternList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcCurveStyleFontPattern_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("PatternList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcCurveStyleFontPattern_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveStyleFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CurveFont", new named_type(IFC2X3_IfcCurveStyleFontSelect_type), false)); - attributes.push_back(new entity::attribute("CurveFontScaling", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("CurveFont", new named_type(IFC2X3_IfcCurveStyleFontSelect_type), false)); + attributes.push_back(new attribute("CurveFontScaling", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveStyleFontAndScaling_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VisibleSegmentLength", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InvisibleSegmentLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VisibleSegmentLength", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("InvisibleSegmentLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveStyleFontPattern_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDamperTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDamperTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDamperType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DateComponent", new named_type(IFC2X3_IfcCalendarDate_type), false)); - attributes.push_back(new entity::attribute("TimeComponent", new named_type(IFC2X3_IfcLocalTime_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DateComponent", new named_type(IFC2X3_IfcCalendarDate_type), false)); + attributes.push_back(new attribute("TimeComponent", new named_type(IFC2X3_IfcLocalTime_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDateAndTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Definition", new named_type(IFC2X3_IfcDefinedSymbolSelect_type), false)); - attributes.push_back(new entity::attribute("Target", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Definition", new named_type(IFC2X3_IfcDefinedSymbolSelect_type), false)); + attributes.push_back(new attribute("Target", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDefinedSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ParentProfile", new named_type(IFC2X3_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Operator", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), false)); - attributes.push_back(new entity::attribute("Label", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ParentProfile", new named_type(IFC2X3_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Operator", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), false)); + attributes.push_back(new attribute("Label", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDerivedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDerivedUnitElement_type)), false)); - attributes.push_back(new entity::attribute("UnitType", new named_type(IFC2X3_IfcDerivedUnitEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDerivedUnitElement_type)), false)); + attributes.push_back(new attribute("UnitType", new named_type(IFC2X3_IfcDerivedUnitEnum_type), false)); + attributes.push_back(new attribute("UserDefinedType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDerivedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcNamedUnit_type), false)); - attributes.push_back(new entity::attribute("Exponent", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcNamedUnit_type), false)); + attributes.push_back(new attribute("Exponent", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDerivedUnitElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDiameterDimension_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionCalloutRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDimensionCurveDirectedCallout_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Role", new named_type(IFC2X3_IfcDimensionExtentUsage_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Role", new named_type(IFC2X3_IfcDimensionExtentUsage_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionCurveTerminator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionPair_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("LengthExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("MassExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("TimeExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ElectricCurrentExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ThermodynamicTemperatureExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("AmountOfSubstanceExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("LuminousIntensityExponent", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("LengthExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("MassExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("TimeExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ElectricCurrentExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ThermodynamicTemperatureExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("AmountOfSubstanceExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("LuminousIntensityExponent", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionalExponents_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("DirectionRatios", new aggregation_type(aggregation_type::list_type, 2, 3, new simple_type(simple_type::real_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("DirectionRatios", new aggregation_type(aggregation_type::list_type, 2, 3, new simple_type(simple_type::real_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDirection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDiscreteAccessory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDiscreteAccessoryType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionChamberElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDistributionChamberElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDistributionChamberElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionChamberElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ControlElementId", new named_type(IFC2X3_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ControlElementId", new named_type(IFC2X3_IfcIdentifier_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionControlElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionControlElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionFlowElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionFlowElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FlowDirection", new named_type(IFC2X3_IfcFlowDirectionEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FlowDirection", new named_type(IFC2X3_IfcFlowDirectionEnum_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionPort_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("FileExtension", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("MimeContentType", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("MimeSubtype", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("FileExtension", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("MimeContentType", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("MimeSubtype", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDocumentElectronicFormat_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(17); - attributes.push_back(new entity::attribute("DocumentId", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("DocumentReferences", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentReference_type)), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("IntendedUse", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Scope", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Revision", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DocumentOwner", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("Editors", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); - attributes.push_back(new entity::attribute("CreationTime", new named_type(IFC2X3_IfcDateAndTime_type), true)); - attributes.push_back(new entity::attribute("LastRevisionTime", new named_type(IFC2X3_IfcDateAndTime_type), true)); - attributes.push_back(new entity::attribute("ElectronicFormat", new named_type(IFC2X3_IfcDocumentElectronicFormat_type), true)); - attributes.push_back(new entity::attribute("ValidFrom", new named_type(IFC2X3_IfcCalendarDate_type), true)); - attributes.push_back(new entity::attribute("ValidUntil", new named_type(IFC2X3_IfcCalendarDate_type), true)); - attributes.push_back(new entity::attribute("Confidentiality", new named_type(IFC2X3_IfcDocumentConfidentialityEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC2X3_IfcDocumentStatusEnum_type), true)); + std::vector attributes; attributes.reserve(17); + attributes.push_back(new attribute("DocumentId", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("DocumentReferences", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentReference_type)), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("IntendedUse", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Scope", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Revision", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("DocumentOwner", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("Editors", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); + attributes.push_back(new attribute("CreationTime", new named_type(IFC2X3_IfcDateAndTime_type), true)); + attributes.push_back(new attribute("LastRevisionTime", new named_type(IFC2X3_IfcDateAndTime_type), true)); + attributes.push_back(new attribute("ElectronicFormat", new named_type(IFC2X3_IfcDocumentElectronicFormat_type), true)); + attributes.push_back(new attribute("ValidFrom", new named_type(IFC2X3_IfcCalendarDate_type), true)); + attributes.push_back(new attribute("ValidUntil", new named_type(IFC2X3_IfcCalendarDate_type), true)); + attributes.push_back(new attribute("Confidentiality", new named_type(IFC2X3_IfcDocumentConfidentialityEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC2X3_IfcDocumentStatusEnum_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDocumentInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingDocument", new named_type(IFC2X3_IfcDocumentInformation_type), false)); - attributes.push_back(new entity::attribute("RelatedDocuments", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentInformation_type)), false)); - attributes.push_back(new entity::attribute("RelationshipType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingDocument", new named_type(IFC2X3_IfcDocumentInformation_type), false)); + attributes.push_back(new attribute("RelatedDocuments", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentInformation_type)), false)); + attributes.push_back(new attribute("RelationshipType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDocumentInformationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDocumentReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDoor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(11); - attributes.push_back(new entity::attribute("LiningDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CasingThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CasingDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(11); + attributes.push_back(new attribute("LiningDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("CasingThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CasingDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDoorLiningProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PanelDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PanelOperation", new named_type(IFC2X3_IfcDoorPanelOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelWidth", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC2X3_IfcDoorPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PanelDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PanelOperation", new named_type(IFC2X3_IfcDoorPanelOperationEnum_type), false)); + attributes.push_back(new attribute("PanelWidth", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC2X3_IfcDoorPanelPositionEnum_type), false)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDoorPanelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcDoorStyleOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC2X3_IfcDoorStyleConstructionEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("Sizeable", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcDoorStyleOperationEnum_type), false)); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC2X3_IfcDoorStyleConstructionEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("Sizeable", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDoorStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Contents", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDraughtingCalloutElement_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Contents", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDraughtingCalloutElement_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDraughtingCallout_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("RelatingDraughtingCallout", new named_type(IFC2X3_IfcDraughtingCallout_type), false)); - attributes.push_back(new entity::attribute("RelatedDraughtingCallout", new named_type(IFC2X3_IfcDraughtingCallout_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("RelatingDraughtingCallout", new named_type(IFC2X3_IfcDraughtingCallout_type), false)); + attributes.push_back(new attribute("RelatedDraughtingCallout", new named_type(IFC2X3_IfcDraughtingCallout_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDraughtingCalloutRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDraughtingPreDefinedColour_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDraughtingPreDefinedCurveFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDraughtingPreDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDuctFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDuctFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDuctFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDuctSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDuctSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDuctSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDuctSilencerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDuctSilencerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDuctSilencerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeStart", new named_type(IFC2X3_IfcVertex_type), false)); - attributes.push_back(new entity::attribute("EdgeEnd", new named_type(IFC2X3_IfcVertex_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeStart", new named_type(IFC2X3_IfcVertex_type), false)); + attributes.push_back(new attribute("EdgeEnd", new named_type(IFC2X3_IfcVertex_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEdge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeGeometry", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("SameSense", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeGeometry", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("SameSense", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEdgeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FeatureLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FeatureLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEdgeFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcOrientedEdge_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcOrientedEdge_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcEdgeLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricApplianceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricApplianceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricApplianceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DistributionPointFunction", new named_type(IFC2X3_IfcElectricDistributionPointFunctionEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedFunction", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DistributionPointFunction", new named_type(IFC2X3_IfcElectricDistributionPointFunctionEnum_type), false)); + attributes.push_back(new attribute("UserDefinedFunction", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricDistributionPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricFlowStorageDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricFlowStorageDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricFlowStorageDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricGeneratorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricGeneratorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricGeneratorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricHeaterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricHeaterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricHeaterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricMotorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricMotorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricMotorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricTimeControlTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricTimeControlTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricTimeControlType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("ElectricCurrentType", new named_type(IFC2X3_IfcElectricCurrentEnum_type), true)); - attributes.push_back(new entity::attribute("InputVoltage", new named_type(IFC2X3_IfcElectricVoltageMeasure_type), false)); - attributes.push_back(new entity::attribute("InputFrequency", new named_type(IFC2X3_IfcFrequencyMeasure_type), false)); - attributes.push_back(new entity::attribute("FullLoadCurrent", new named_type(IFC2X3_IfcElectricCurrentMeasure_type), true)); - attributes.push_back(new entity::attribute("MinimumCircuitCurrent", new named_type(IFC2X3_IfcElectricCurrentMeasure_type), true)); - attributes.push_back(new entity::attribute("MaximumPowerInput", new named_type(IFC2X3_IfcPowerMeasure_type), true)); - attributes.push_back(new entity::attribute("RatedPowerInput", new named_type(IFC2X3_IfcPowerMeasure_type), true)); - attributes.push_back(new entity::attribute("InputPhase", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("ElectricCurrentType", new named_type(IFC2X3_IfcElectricCurrentEnum_type), true)); + attributes.push_back(new attribute("InputVoltage", new named_type(IFC2X3_IfcElectricVoltageMeasure_type), false)); + attributes.push_back(new attribute("InputFrequency", new named_type(IFC2X3_IfcFrequencyMeasure_type), false)); + attributes.push_back(new attribute("FullLoadCurrent", new named_type(IFC2X3_IfcElectricCurrentMeasure_type), true)); + attributes.push_back(new attribute("MinimumCircuitCurrent", new named_type(IFC2X3_IfcElectricCurrentMeasure_type), true)); + attributes.push_back(new attribute("MaximumPowerInput", new named_type(IFC2X3_IfcPowerMeasure_type), true)); + attributes.push_back(new attribute("RatedPowerInput", new named_type(IFC2X3_IfcPowerMeasure_type), true)); + attributes.push_back(new attribute("InputPhase", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricalBaseProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricalCircuit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricalElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC2X3_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Tag", new named_type(IFC2X3_IfcIdentifier_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AssemblyPlace", new named_type(IFC2X3_IfcAssemblyPlaceEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElementAssemblyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AssemblyPlace", new named_type(IFC2X3_IfcAssemblyPlaceEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElementAssemblyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementAssembly_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementComponent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementComponentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MethodOfMeasurement", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Quantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPhysicalQuantity_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MethodOfMeasurement", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Quantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPhysicalQuantity_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ElementType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ElementType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcElementarySurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SemiAxis1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SemiAxis2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SemiAxis1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("SemiAxis2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEllipse_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SemiAxis1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SemiAxis2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SemiAxis1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("SemiAxis2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEllipseProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEnergyConversionDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEnergyConversionDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EnergySequence", new named_type(IFC2X3_IfcEnergySequenceEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedEnergySequence", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EnergySequence", new named_type(IFC2X3_IfcEnergySequenceEnum_type), true)); + attributes.push_back(new attribute("UserDefinedEnergySequence", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEnergyProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ImpactType", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC2X3_IfcEnvironmentalImpactCategoryEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedCategory", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ImpactType", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Category", new named_type(IFC2X3_IfcEnvironmentalImpactCategoryEnum_type), false)); + attributes.push_back(new attribute("UserDefinedCategory", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEnvironmentalImpactValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEquipmentElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEquipmentStandard_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcEvaporativeCoolerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcEvaporativeCoolerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEvaporativeCoolerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcEvaporatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcEvaporatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEvaporatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ExtendedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ExtendedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExtendedMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Location", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ItemReference", new named_type(IFC2X3_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Location", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ItemReference", new named_type(IFC2X3_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternalReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternallyDefinedHatchStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternallyDefinedSurfaceStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternallyDefinedSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternallyDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ExtrudedDirection", new named_type(IFC2X3_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ExtrudedDirection", new named_type(IFC2X3_IfcDirection_type), false)); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExtrudedAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Bounds", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFaceBound_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Bounds", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFaceBound_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcFace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FbsmFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcConnectedFaceSet_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FbsmFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcConnectedFaceSet_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcFaceBasedSurfaceModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Bound", new named_type(IFC2X3_IfcLoop_type), false)); - attributes.push_back(new entity::attribute("Orientation", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Bound", new named_type(IFC2X3_IfcLoop_type), false)); + attributes.push_back(new attribute("Orientation", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFaceBound_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFaceOuterBound_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("FaceSurface", new named_type(IFC2X3_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("SameSense", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("FaceSurface", new named_type(IFC2X3_IfcSurface_type), false)); + attributes.push_back(new attribute("SameSense", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFaceSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcFacetedBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClosedShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClosedShell_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFacetedBrepWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TensionFailureX", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionFailureY", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionFailureZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureX", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureY", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TensionFailureX", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("TensionFailureY", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("TensionFailureZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureX", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureY", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFailureConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFanTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFanTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFanType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFastener_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFastenerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFeatureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFeatureElementAddition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFeatureElementSubtraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FillStyles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFillStyleSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FillStyles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFillStyleSelect_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFillAreaStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("HatchLineAppearance", new named_type(IFC2X3_IfcCurveStyle_type), false)); - attributes.push_back(new entity::attribute("StartOfNextHatchLine", new named_type(IFC2X3_IfcHatchLineDistanceSelect_type), false)); - attributes.push_back(new entity::attribute("PointOfReferenceHatchLine", new named_type(IFC2X3_IfcCartesianPoint_type), true)); - attributes.push_back(new entity::attribute("PatternStart", new named_type(IFC2X3_IfcCartesianPoint_type), true)); - attributes.push_back(new entity::attribute("HatchLineAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("HatchLineAppearance", new named_type(IFC2X3_IfcCurveStyle_type), false)); + attributes.push_back(new attribute("StartOfNextHatchLine", new named_type(IFC2X3_IfcHatchLineDistanceSelect_type), false)); + attributes.push_back(new attribute("PointOfReferenceHatchLine", new named_type(IFC2X3_IfcCartesianPoint_type), true)); + attributes.push_back(new attribute("PatternStart", new named_type(IFC2X3_IfcCartesianPoint_type), true)); + attributes.push_back(new attribute("HatchLineAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFillAreaStyleHatching_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Symbol", new named_type(IFC2X3_IfcAnnotationSymbolOccurrence_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Symbol", new named_type(IFC2X3_IfcAnnotationSymbolOccurrence_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcFillAreaStyleTileSymbolWithStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TilingPattern", new named_type(IFC2X3_IfcOneDirectionRepeatFactor_type), false)); - attributes.push_back(new entity::attribute("Tiles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFillAreaStyleTileShapeSelect_type)), false)); - attributes.push_back(new entity::attribute("TilingScale", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TilingPattern", new named_type(IFC2X3_IfcOneDirectionRepeatFactor_type), false)); + attributes.push_back(new attribute("Tiles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFillAreaStyleTileShapeSelect_type)), false)); + attributes.push_back(new attribute("TilingScale", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFillAreaStyleTiles_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFilterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFilterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFilterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFireSuppressionTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFireSuppressionTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFireSuppressionTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowController_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowControllerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFlowInstrumentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFlowInstrumentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowInstrumentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFlowMeterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFlowMeterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowMeterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowMovingDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowMovingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowStorageDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowStorageDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowTreatmentDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowTreatmentDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(15); - attributes.push_back(new entity::attribute("PropertySource", new named_type(IFC2X3_IfcPropertySourceEnum_type), false)); - attributes.push_back(new entity::attribute("FlowConditionTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("VelocityTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("FlowrateTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("Fluid", new named_type(IFC2X3_IfcMaterial_type), false)); - attributes.push_back(new entity::attribute("PressureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPropertySource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("TemperatureSingleValue", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("WetBulbTemperatureSingleValue", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("WetBulbTemperatureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("TemperatureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("FlowrateSingleValue", new named_type(IFC2X3_IfcDerivedMeasureValue_type), true)); - attributes.push_back(new entity::attribute("FlowConditionSingleValue", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("VelocitySingleValue", new named_type(IFC2X3_IfcLinearVelocityMeasure_type), true)); - attributes.push_back(new entity::attribute("PressureSingleValue", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + std::vector attributes; attributes.reserve(15); + attributes.push_back(new attribute("PropertySource", new named_type(IFC2X3_IfcPropertySourceEnum_type), false)); + attributes.push_back(new attribute("FlowConditionTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("VelocityTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("FlowrateTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("Fluid", new named_type(IFC2X3_IfcMaterial_type), false)); + attributes.push_back(new attribute("PressureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("UserDefinedPropertySource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("TemperatureSingleValue", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("WetBulbTemperatureSingleValue", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("WetBulbTemperatureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("TemperatureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("FlowrateSingleValue", new named_type(IFC2X3_IfcDerivedMeasureValue_type), true)); + attributes.push_back(new attribute("FlowConditionSingleValue", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("VelocitySingleValue", new named_type(IFC2X3_IfcLinearVelocityMeasure_type), true)); + attributes.push_back(new attribute("PressureSingleValue", new named_type(IFC2X3_IfcPressureMeasure_type), true)); std::vector derived; derived.reserve(19); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFluidFlowProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFootingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFootingTypeEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFooting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("CombustionTemperature", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("CarbonContent", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("LowerHeatingValue", new named_type(IFC2X3_IfcHeatingValueMeasure_type), true)); - attributes.push_back(new entity::attribute("HigherHeatingValue", new named_type(IFC2X3_IfcHeatingValueMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("CombustionTemperature", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("CarbonContent", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("LowerHeatingValue", new named_type(IFC2X3_IfcHeatingValueMeasure_type), true)); + attributes.push_back(new attribute("HigherHeatingValue", new named_type(IFC2X3_IfcHeatingValueMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFuelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFurnishingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFurnishingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFurnitureStandard_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AssemblyPlace", new named_type(IFC2X3_IfcAssemblyPlaceEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AssemblyPlace", new named_type(IFC2X3_IfcAssemblyPlaceEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFurnitureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcGasTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcGasTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGasTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MolecularWeight", new named_type(IFC2X3_IfcMolecularWeightMeasure_type), true)); - attributes.push_back(new entity::attribute("Porosity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("MassDensity", new named_type(IFC2X3_IfcMassDensityMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MolecularWeight", new named_type(IFC2X3_IfcMolecularWeightMeasure_type), true)); + attributes.push_back(new attribute("Porosity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("MassDensity", new named_type(IFC2X3_IfcMassDensityMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGeneralMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PhysicalWeight", new named_type(IFC2X3_IfcMassPerLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Perimeter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MinimumPlateThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MaximumPlateThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PhysicalWeight", new named_type(IFC2X3_IfcMassPerLengthMeasure_type), true)); + attributes.push_back(new attribute("Perimeter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MinimumPlateThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MaximumPlateThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGeneralProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcGeometricCurveSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("CoordinateSpaceDimension", new named_type(IFC2X3_IfcDimensionCount_type), false)); - attributes.push_back(new entity::attribute("Precision", new simple_type(simple_type::real_type), true)); - attributes.push_back(new entity::attribute("WorldCoordinateSystem", new named_type(IFC2X3_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("TrueNorth", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("CoordinateSpaceDimension", new named_type(IFC2X3_IfcDimensionCount_type), false)); + attributes.push_back(new attribute("Precision", new simple_type(simple_type::real_type), true)); + attributes.push_back(new attribute("WorldCoordinateSystem", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("TrueNorth", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGeometricRepresentationContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcGeometricRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ParentContext", new named_type(IFC2X3_IfcGeometricRepresentationContext_type), false)); - attributes.push_back(new entity::attribute("TargetScale", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("TargetView", new named_type(IFC2X3_IfcGeometricProjectionEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedTargetView", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ParentContext", new named_type(IFC2X3_IfcGeometricRepresentationContext_type), false)); + attributes.push_back(new attribute("TargetScale", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("TargetView", new named_type(IFC2X3_IfcGeometricProjectionEnum_type), false)); + attributes.push_back(new attribute("UserDefinedTargetView", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(true); derived.push_back(true); derived.push_back(true); derived.push_back(true); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGeometricRepresentationSubContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcGeometricSetSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcGeometricSetSelect_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcGeometricSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("UAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("VAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("WAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("UAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("VAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("WAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGrid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("AxisTag", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AxisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC2X3_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("AxisTag", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("AxisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC2X3_IfcBoolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGridAxis_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PlacementLocation", new named_type(IFC2X3_IfcVirtualGridIntersection_type), false)); - attributes.push_back(new entity::attribute("PlacementRefDirection", new named_type(IFC2X3_IfcVirtualGridIntersection_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PlacementLocation", new named_type(IFC2X3_IfcVirtualGridIntersection_type), false)); + attributes.push_back(new attribute("PlacementRefDirection", new named_type(IFC2X3_IfcVirtualGridIntersection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGridPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BaseSurface", new named_type(IFC2X3_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("AgreementFlag", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BaseSurface", new named_type(IFC2X3_IfcSurface_type), false)); + attributes.push_back(new attribute("AgreementFlag", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcHalfSpaceSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcHeatExchangerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcHeatExchangerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcHeatExchangerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcHumidifierTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcHumidifierTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcHumidifierType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("UpperVaporResistanceFactor", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("LowerVaporResistanceFactor", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("IsothermalMoistureCapacity", new named_type(IFC2X3_IfcIsothermalMoistureCapacityMeasure_type), true)); - attributes.push_back(new entity::attribute("VaporPermeability", new named_type(IFC2X3_IfcVaporPermeabilityMeasure_type), true)); - attributes.push_back(new entity::attribute("MoistureDiffusivity", new named_type(IFC2X3_IfcMoistureDiffusivityMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("UpperVaporResistanceFactor", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("LowerVaporResistanceFactor", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("IsothermalMoistureCapacity", new named_type(IFC2X3_IfcIsothermalMoistureCapacityMeasure_type), true)); + attributes.push_back(new attribute("VaporPermeability", new named_type(IFC2X3_IfcVaporPermeabilityMeasure_type), true)); + attributes.push_back(new attribute("MoistureDiffusivity", new named_type(IFC2X3_IfcMoistureDiffusivityMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcHygroscopicMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("OverallDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("OverallDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcIShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("UrlReference", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("UrlReference", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcImageTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("InventoryType", new named_type(IFC2X3_IfcInventoryTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Jurisdiction", new named_type(IFC2X3_IfcActorSelect_type), false)); - attributes.push_back(new entity::attribute("ResponsiblePersons", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPerson_type)), false)); - attributes.push_back(new entity::attribute("LastUpdateDate", new named_type(IFC2X3_IfcCalendarDate_type), false)); - attributes.push_back(new entity::attribute("CurrentValue", new named_type(IFC2X3_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("OriginalValue", new named_type(IFC2X3_IfcCostValue_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("InventoryType", new named_type(IFC2X3_IfcInventoryTypeEnum_type), false)); + attributes.push_back(new attribute("Jurisdiction", new named_type(IFC2X3_IfcActorSelect_type), false)); + attributes.push_back(new attribute("ResponsiblePersons", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPerson_type)), false)); + attributes.push_back(new attribute("LastUpdateDate", new named_type(IFC2X3_IfcCalendarDate_type), false)); + attributes.push_back(new attribute("CurrentValue", new named_type(IFC2X3_IfcCostValue_type), true)); + attributes.push_back(new attribute("OriginalValue", new named_type(IFC2X3_IfcCostValue_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcInventory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcIrregularTimeSeriesValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcIrregularTimeSeriesValue_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcIrregularTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeStamp", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeStamp", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcIrregularTimeSeriesValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcJunctionBoxTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcJunctionBoxTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcJunctionBoxType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LegSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LegSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SkillSet", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SkillSet", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLaborResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcLampTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcLampTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLampType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Version", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Publisher", new named_type(IFC2X3_IfcOrganization_type), true)); - attributes.push_back(new entity::attribute("VersionDate", new named_type(IFC2X3_IfcCalendarDate_type), true)); - attributes.push_back(new entity::attribute("LibraryReference", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcLibraryReference_type)), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Version", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Publisher", new named_type(IFC2X3_IfcOrganization_type), true)); + attributes.push_back(new attribute("VersionDate", new named_type(IFC2X3_IfcCalendarDate_type), true)); + attributes.push_back(new attribute("LibraryReference", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcLibraryReference_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLibraryInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLibraryReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MainPlaneAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); - attributes.push_back(new entity::attribute("SecondaryPlaneAngle", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcPlaneAngleMeasure_type)), false)); - attributes.push_back(new entity::attribute("LuminousIntensity", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLuminousIntensityDistributionMeasure_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MainPlaneAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); + attributes.push_back(new attribute("SecondaryPlaneAngle", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcPlaneAngleMeasure_type)), false)); + attributes.push_back(new attribute("LuminousIntensity", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLuminousIntensityDistributionMeasure_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightDistributionData_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcLightFixtureTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcLightFixtureTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightFixtureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LightDistributionCurve", new named_type(IFC2X3_IfcLightDistributionCurveEnum_type), false)); - attributes.push_back(new entity::attribute("DistributionData", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLightDistributionData_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LightDistributionCurve", new named_type(IFC2X3_IfcLightDistributionCurveEnum_type), false)); + attributes.push_back(new attribute("DistributionData", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLightDistributionData_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightIntensityDistribution_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LightColour", new named_type(IFC2X3_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("AmbientIntensity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Intensity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("LightColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + attributes.push_back(new attribute("AmbientIntensity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("Intensity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourceAmbient_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourceDirectional_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); - attributes.push_back(new entity::attribute("ColourAppearance", new named_type(IFC2X3_IfcColourRgb_type), true)); - attributes.push_back(new entity::attribute("ColourTemperature", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), false)); - attributes.push_back(new entity::attribute("LuminousFlux", new named_type(IFC2X3_IfcLuminousFluxMeasure_type), false)); - attributes.push_back(new entity::attribute("LightEmissionSource", new named_type(IFC2X3_IfcLightEmissionSourceEnum_type), false)); - attributes.push_back(new entity::attribute("LightDistributionDataSource", new named_type(IFC2X3_IfcLightDistributionDataSourceSelect_type), false)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + attributes.push_back(new attribute("ColourAppearance", new named_type(IFC2X3_IfcColourRgb_type), true)); + attributes.push_back(new attribute("ColourTemperature", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), false)); + attributes.push_back(new attribute("LuminousFlux", new named_type(IFC2X3_IfcLuminousFluxMeasure_type), false)); + attributes.push_back(new attribute("LightEmissionSource", new named_type(IFC2X3_IfcLightEmissionSourceEnum_type), false)); + attributes.push_back(new attribute("LightDistributionDataSource", new named_type(IFC2X3_IfcLightDistributionDataSourceSelect_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourceGoniometric_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ConstantAttenuation", new named_type(IFC2X3_IfcReal_type), false)); - attributes.push_back(new entity::attribute("DistanceAttenuation", new named_type(IFC2X3_IfcReal_type), false)); - attributes.push_back(new entity::attribute("QuadricAttenuation", new named_type(IFC2X3_IfcReal_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ConstantAttenuation", new named_type(IFC2X3_IfcReal_type), false)); + attributes.push_back(new attribute("DistanceAttenuation", new named_type(IFC2X3_IfcReal_type), false)); + attributes.push_back(new attribute("QuadricAttenuation", new named_type(IFC2X3_IfcReal_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourcePositional_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("ConcentrationExponent", new named_type(IFC2X3_IfcReal_type), true)); - attributes.push_back(new entity::attribute("SpreadAngle", new named_type(IFC2X3_IfcPositivePlaneAngleMeasure_type), false)); - attributes.push_back(new entity::attribute("BeamWidthAngle", new named_type(IFC2X3_IfcPositivePlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); + attributes.push_back(new attribute("ConcentrationExponent", new named_type(IFC2X3_IfcReal_type), true)); + attributes.push_back(new attribute("SpreadAngle", new named_type(IFC2X3_IfcPositivePlaneAngleMeasure_type), false)); + attributes.push_back(new attribute("BeamWidthAngle", new named_type(IFC2X3_IfcPositivePlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourceSpot_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Pnt", new named_type(IFC2X3_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Dir", new named_type(IFC2X3_IfcVector_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Pnt", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Dir", new named_type(IFC2X3_IfcVector_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcLinearDimension_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PlacementRelTo", new named_type(IFC2X3_IfcObjectPlacement_type), true)); - attributes.push_back(new entity::attribute("RelativePlacement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PlacementRelTo", new named_type(IFC2X3_IfcObjectPlacement_type), true)); + attributes.push_back(new attribute("RelativePlacement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLocalPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("HourComponent", new named_type(IFC2X3_IfcHourInDay_type), false)); - attributes.push_back(new entity::attribute("MinuteComponent", new named_type(IFC2X3_IfcMinuteInHour_type), true)); - attributes.push_back(new entity::attribute("SecondComponent", new named_type(IFC2X3_IfcSecondInMinute_type), true)); - attributes.push_back(new entity::attribute("Zone", new named_type(IFC2X3_IfcCoordinatedUniversalTimeOffset_type), true)); - attributes.push_back(new entity::attribute("DaylightSavingOffset", new named_type(IFC2X3_IfcDaylightSavingHour_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("HourComponent", new named_type(IFC2X3_IfcHourInDay_type), false)); + attributes.push_back(new attribute("MinuteComponent", new named_type(IFC2X3_IfcMinuteInHour_type), true)); + attributes.push_back(new attribute("SecondComponent", new named_type(IFC2X3_IfcSecondInMinute_type), true)); + attributes.push_back(new attribute("Zone", new named_type(IFC2X3_IfcCoordinatedUniversalTimeOffset_type), true)); + attributes.push_back(new attribute("DaylightSavingOffset", new named_type(IFC2X3_IfcDaylightSavingHour_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLocalTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Outer", new named_type(IFC2X3_IfcClosedShell_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Outer", new named_type(IFC2X3_IfcClosedShell_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcManifoldSolidBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappingSource", new named_type(IFC2X3_IfcRepresentationMap_type), false)); - attributes.push_back(new entity::attribute("MappingTarget", new named_type(IFC2X3_IfcCartesianTransformationOperator_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappingSource", new named_type(IFC2X3_IfcRepresentationMap_type), false)); + attributes.push_back(new attribute("MappingTarget", new named_type(IFC2X3_IfcCartesianTransformationOperator_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMappedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcMaterial_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MaterialClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationSelect_type)), false)); - attributes.push_back(new entity::attribute("ClassifiedMaterial", new named_type(IFC2X3_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MaterialClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationSelect_type)), false)); + attributes.push_back(new attribute("ClassifiedMaterial", new named_type(IFC2X3_IfcMaterial_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialClassificationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RepresentedMaterial", new named_type(IFC2X3_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RepresentedMaterial", new named_type(IFC2X3_IfcMaterial_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialDefinitionRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Material", new named_type(IFC2X3_IfcMaterial_type), true)); - attributes.push_back(new entity::attribute("LayerThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("IsVentilated", new named_type(IFC2X3_IfcLogical_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Material", new named_type(IFC2X3_IfcMaterial_type), true)); + attributes.push_back(new attribute("LayerThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("IsVentilated", new named_type(IFC2X3_IfcLogical_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialLayer_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MaterialLayers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcMaterialLayer_type)), false)); - attributes.push_back(new entity::attribute("LayerSetName", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MaterialLayers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcMaterialLayer_type)), false)); + attributes.push_back(new attribute("LayerSetName", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialLayerSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ForLayerSet", new named_type(IFC2X3_IfcMaterialLayerSet_type), false)); - attributes.push_back(new entity::attribute("LayerSetDirection", new named_type(IFC2X3_IfcLayerSetDirectionEnum_type), false)); - attributes.push_back(new entity::attribute("DirectionSense", new named_type(IFC2X3_IfcDirectionSenseEnum_type), false)); - attributes.push_back(new entity::attribute("OffsetFromReferenceLine", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ForLayerSet", new named_type(IFC2X3_IfcMaterialLayerSet_type), false)); + attributes.push_back(new attribute("LayerSetDirection", new named_type(IFC2X3_IfcLayerSetDirectionEnum_type), false)); + attributes.push_back(new attribute("DirectionSense", new named_type(IFC2X3_IfcDirectionSenseEnum_type), false)); + attributes.push_back(new attribute("OffsetFromReferenceLine", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialLayerSetUsage_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Materials", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcMaterial_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Materials", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcMaterial_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcMaterialList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Material", new named_type(IFC2X3_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Material", new named_type(IFC2X3_IfcMaterial_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ValueComponent", new named_type(IFC2X3_IfcValue_type), false)); - attributes.push_back(new entity::attribute("UnitComponent", new named_type(IFC2X3_IfcUnit_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ValueComponent", new named_type(IFC2X3_IfcValue_type), false)); + attributes.push_back(new attribute("UnitComponent", new named_type(IFC2X3_IfcUnit_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMeasureWithUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("CompressiveStrength", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("MaxAggregateSize", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("AdmixturesDescription", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Workability", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("ProtectivePoreRatio", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("WaterImpermeability", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("CompressiveStrength", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("MaxAggregateSize", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("AdmixturesDescription", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Workability", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("ProtectivePoreRatio", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("WaterImpermeability", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalConcreteMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalFastener_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalFastenerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("DynamicViscosity", new named_type(IFC2X3_IfcDynamicViscosityMeasure_type), true)); - attributes.push_back(new entity::attribute("YoungModulus", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearModulus", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); - attributes.push_back(new entity::attribute("PoissonRatio", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalExpansionCoefficient", new named_type(IFC2X3_IfcThermalExpansionCoefficientMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("DynamicViscosity", new named_type(IFC2X3_IfcDynamicViscosityMeasure_type), true)); + attributes.push_back(new attribute("YoungModulus", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); + attributes.push_back(new attribute("ShearModulus", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); + attributes.push_back(new attribute("PoissonRatio", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalExpansionCoefficient", new named_type(IFC2X3_IfcThermalExpansionCoefficientMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("YieldStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("UltimateStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("UltimateStrain", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("HardeningModule", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); - attributes.push_back(new entity::attribute("ProportionalStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("PlasticStrain", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Relaxations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRelaxation_type)), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("YieldStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("UltimateStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("UltimateStrain", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("HardeningModule", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); + attributes.push_back(new attribute("ProportionalStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("PlasticStrain", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("Relaxations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRelaxation_type)), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalSteelMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcMemberTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcMemberTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMemberType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Benchmark", new named_type(IFC2X3_IfcBenchmarkEnum_type), false)); - attributes.push_back(new entity::attribute("ValueSource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DataValue", new named_type(IFC2X3_IfcMetricValueSelect_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Benchmark", new named_type(IFC2X3_IfcBenchmarkEnum_type), false)); + attributes.push_back(new attribute("ValueSource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("DataValue", new named_type(IFC2X3_IfcMetricValueSelect_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMetric_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Currency", new named_type(IFC2X3_IfcCurrencyEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Currency", new named_type(IFC2X3_IfcCurrencyEnum_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcMonetaryUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcMotorConnectionTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcMotorConnectionTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMotorConnectionType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MoveFrom", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); - attributes.push_back(new entity::attribute("MoveTo", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); - attributes.push_back(new entity::attribute("PunchList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcText_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MoveFrom", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); + attributes.push_back(new attribute("MoveTo", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); + attributes.push_back(new attribute("PunchList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcText_type)), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMove_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Dimensions", new named_type(IFC2X3_IfcDimensionalExponents_type), false)); - attributes.push_back(new entity::attribute("UnitType", new named_type(IFC2X3_IfcUnitEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Dimensions", new named_type(IFC2X3_IfcDimensionalExponents_type), false)); + attributes.push_back(new attribute("UnitType", new named_type(IFC2X3_IfcUnitEnum_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcNamedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ObjectType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ObjectType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcObjectDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcObjectPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BenchmarkValues", new named_type(IFC2X3_IfcMetric_type), true)); - attributes.push_back(new entity::attribute("ResultValues", new named_type(IFC2X3_IfcMetric_type), true)); - attributes.push_back(new entity::attribute("ObjectiveQualifier", new named_type(IFC2X3_IfcObjectiveEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedQualifier", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BenchmarkValues", new named_type(IFC2X3_IfcMetric_type), true)); + attributes.push_back(new attribute("ResultValues", new named_type(IFC2X3_IfcMetric_type), true)); + attributes.push_back(new attribute("ObjectiveQualifier", new named_type(IFC2X3_IfcObjectiveEnum_type), false)); + attributes.push_back(new attribute("UserDefinedQualifier", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcObjective_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcOccupantTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcOccupantTypeEnum_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOccupant_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Distance", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("Distance", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOffsetCurve2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Distance", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("Distance", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOffsetCurve3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RepeatFactor", new named_type(IFC2X3_IfcVector_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RepeatFactor", new named_type(IFC2X3_IfcVector_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcOneDirectionRepeatFactor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcOpenShell_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOpeningElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("VisibleTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SolarTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalIrTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalIrEmissivityBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalIrEmissivityFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("VisibleReflectanceBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("VisibleReflectanceFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SolarReflectanceFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SolarReflectanceBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("VisibleTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("SolarTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalIrTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalIrEmissivityBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalIrEmissivityFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("VisibleReflectanceBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("VisibleReflectanceFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("SolarReflectanceFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("SolarReflectanceBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOpticalMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ActionID", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ActionID", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOrderAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Id", new named_type(IFC2X3_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); - attributes.push_back(new entity::attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcAddress_type)), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Id", new named_type(IFC2X3_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); + attributes.push_back(new attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcAddress_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOrganization_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("RelatingOrganization", new named_type(IFC2X3_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("RelatedOrganizations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcOrganization_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("RelatingOrganization", new named_type(IFC2X3_IfcOrganization_type), false)); + attributes.push_back(new attribute("RelatedOrganizations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcOrganization_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOrganizationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeElement", new named_type(IFC2X3_IfcEdge_type), false)); - attributes.push_back(new entity::attribute("Orientation", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeElement", new named_type(IFC2X3_IfcEdge_type), false)); + attributes.push_back(new attribute("Orientation", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(4); derived.push_back(true); derived.push_back(true); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOrientedEdge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcOutletTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcOutletTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOutletType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("OwningUser", new named_type(IFC2X3_IfcPersonAndOrganization_type), false)); - attributes.push_back(new entity::attribute("OwningApplication", new named_type(IFC2X3_IfcApplication_type), false)); - attributes.push_back(new entity::attribute("State", new named_type(IFC2X3_IfcStateEnum_type), true)); - attributes.push_back(new entity::attribute("ChangeAction", new named_type(IFC2X3_IfcChangeActionEnum_type), false)); - attributes.push_back(new entity::attribute("LastModifiedDate", new named_type(IFC2X3_IfcTimeStamp_type), true)); - attributes.push_back(new entity::attribute("LastModifyingUser", new named_type(IFC2X3_IfcPersonAndOrganization_type), true)); - attributes.push_back(new entity::attribute("LastModifyingApplication", new named_type(IFC2X3_IfcApplication_type), true)); - attributes.push_back(new entity::attribute("CreationDate", new named_type(IFC2X3_IfcTimeStamp_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("OwningUser", new named_type(IFC2X3_IfcPersonAndOrganization_type), false)); + attributes.push_back(new attribute("OwningApplication", new named_type(IFC2X3_IfcApplication_type), false)); + attributes.push_back(new attribute("State", new named_type(IFC2X3_IfcStateEnum_type), true)); + attributes.push_back(new attribute("ChangeAction", new named_type(IFC2X3_IfcChangeActionEnum_type), false)); + attributes.push_back(new attribute("LastModifiedDate", new named_type(IFC2X3_IfcTimeStamp_type), true)); + attributes.push_back(new attribute("LastModifyingUser", new named_type(IFC2X3_IfcPersonAndOrganization_type), true)); + attributes.push_back(new attribute("LastModifyingApplication", new named_type(IFC2X3_IfcApplication_type), true)); + attributes.push_back(new attribute("CreationDate", new named_type(IFC2X3_IfcTimeStamp_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOwnerHistory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement2D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement2D_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcParameterizedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcOrientedEdge_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcOrientedEdge_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPath_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LifeCyclePhase", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LifeCyclePhase", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPerformanceHistory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcPermeableCoveringOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC2X3_IfcWindowPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("FrameDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FrameThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcPermeableCoveringOperationEnum_type), false)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC2X3_IfcWindowPanelPositionEnum_type), false)); + attributes.push_back(new attribute("FrameDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FrameThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPermeableCoveringProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PermitID", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PermitID", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPermit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Id", new named_type(IFC2X3_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("FamilyName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("GivenName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("MiddleNames", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PrefixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("SuffixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); - attributes.push_back(new entity::attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcAddress_type)), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Id", new named_type(IFC2X3_IfcIdentifier_type), true)); + attributes.push_back(new attribute("FamilyName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("GivenName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("MiddleNames", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("PrefixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("SuffixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); + attributes.push_back(new attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcAddress_type)), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPerson_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ThePerson", new named_type(IFC2X3_IfcPerson_type), false)); - attributes.push_back(new entity::attribute("TheOrganization", new named_type(IFC2X3_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ThePerson", new named_type(IFC2X3_IfcPerson_type), false)); + attributes.push_back(new attribute("TheOrganization", new named_type(IFC2X3_IfcOrganization_type), false)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPersonAndOrganization_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("HasQuantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPhysicalQuantity_type)), false)); - attributes.push_back(new entity::attribute("Discrimination", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Quality", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Usage", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("HasQuantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPhysicalQuantity_type)), false)); + attributes.push_back(new attribute("Discrimination", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Quality", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Usage", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPhysicalComplexQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPhysicalQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcNamedUnit_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcNamedUnit_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPhysicalSimpleQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPileTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC2X3_IfcPileConstructionEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPileTypeEnum_type), false)); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC2X3_IfcPileConstructionEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPile_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPipeFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPipeFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPipeFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPipeSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPipeSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPipeSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Width", new named_type(IFC2X3_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("ColourComponents", new named_type(IFC2X3_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("Pixel", new aggregation_type(aggregation_type::list_type, 1, -1, new simple_type(simple_type::binary_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Width", new named_type(IFC2X3_IfcInteger_type), false)); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcInteger_type), false)); + attributes.push_back(new attribute("ColourComponents", new named_type(IFC2X3_IfcInteger_type), false)); + attributes.push_back(new attribute("Pixel", new aggregation_type(aggregation_type::list_type, 1, -1, new simple_type(simple_type::binary_type)), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPixelTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Location", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Location", new named_type(IFC2X3_IfcCartesianPoint_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Placement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Placement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPlanarBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SizeInX", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SizeInY", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SizeInX", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SizeInY", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPlanarExtent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPlane_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPlate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPlateTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPlateTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPlateType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("PointParameter", new named_type(IFC2X3_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("PointParameter", new named_type(IFC2X3_IfcParameterValue_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPointOnCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC2X3_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("PointParameterU", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("PointParameterV", new named_type(IFC2X3_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC2X3_IfcSurface_type), false)); + attributes.push_back(new attribute("PointParameterU", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("PointParameterV", new named_type(IFC2X3_IfcParameterValue_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPointOnSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Polygon", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Polygon", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPolyLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); - attributes.push_back(new entity::attribute("PolygonalBoundary", new named_type(IFC2X3_IfcBoundedCurve_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + attributes.push_back(new attribute("PolygonalBoundary", new named_type(IFC2X3_IfcBoundedCurve_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPolygonalBoundedHalfSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Points", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Points", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPolyline_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPort_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("InternalLocation", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AddressLines", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PostalBox", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Town", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Region", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PostalCode", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Country", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("InternalLocation", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("AddressLines", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("PostalBox", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Town", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Region", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("PostalCode", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Country", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPostalAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedColour_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedCurveFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedDimensionSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedPointMarkerSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedTerminatorSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("AssignedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcLayeredItem_type)), false)); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("AssignedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcLayeredItem_type)), false)); + attributes.push_back(new attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPresentationLayerAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("LayerOn", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("LayerFrozen", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("LayerBlocked", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("LayerStyles", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC2X3_IfcPresentationStyleSelect_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("LayerOn", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("LayerFrozen", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("LayerBlocked", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("LayerStyles", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC2X3_IfcPresentationStyleSelect_type)), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPresentationLayerWithStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPresentationStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPresentationStyleSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPresentationStyleSelect_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPresentationStyleAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ProcedureID", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("ProcedureType", new named_type(IFC2X3_IfcProcedureTypeEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedProcedureType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ProcedureID", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("ProcedureType", new named_type(IFC2X3_IfcProcedureTypeEnum_type), false)); + attributes.push_back(new attribute("UserDefinedProcedureType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProcedure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ObjectPlacement", new named_type(IFC2X3_IfcObjectPlacement_type), true)); - attributes.push_back(new entity::attribute("Representation", new named_type(IFC2X3_IfcProductRepresentation_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ObjectPlacement", new named_type(IFC2X3_IfcObjectPlacement_type), true)); + attributes.push_back(new attribute("Representation", new named_type(IFC2X3_IfcProductRepresentation_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProductDefinitionShape_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Representations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRepresentation_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Representations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRepresentation_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProductRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("SpecificHeatCapacity", new named_type(IFC2X3_IfcSpecificHeatCapacityMeasure_type), true)); - attributes.push_back(new entity::attribute("N20Content", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("COContent", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("CO2Content", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("SpecificHeatCapacity", new named_type(IFC2X3_IfcSpecificHeatCapacityMeasure_type), true)); + attributes.push_back(new attribute("N20Content", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("COContent", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("CO2Content", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProductsOfCombustionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProfileType", new named_type(IFC2X3_IfcProfileTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ProfileName", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProfileType", new named_type(IFC2X3_IfcProfileTypeEnum_type), false)); + attributes.push_back(new attribute("ProfileName", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProfileName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ProfileDefinition", new named_type(IFC2X3_IfcProfileDef_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProfileName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ProfileDefinition", new named_type(IFC2X3_IfcProfileDef_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Phase", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RepresentationContexts", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRepresentationContext_type)), false)); - attributes.push_back(new entity::attribute("UnitsInContext", new named_type(IFC2X3_IfcUnitAssignment_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("LongName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Phase", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("RepresentationContexts", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRepresentationContext_type)), false)); + attributes.push_back(new attribute("UnitsInContext", new named_type(IFC2X3_IfcUnitAssignment_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ID", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcProjectOrderTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ID", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcProjectOrderTypeEnum_type), false)); + attributes.push_back(new attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProjectOrder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Records", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRelAssignsToProjectOrder_type)), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcProjectOrderRecordTypeEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Records", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRelAssignsToProjectOrder_type)), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcProjectOrderRecordTypeEnum_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProjectOrderRecord_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProjectionCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProjectionElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("UpperBoundValue", new named_type(IFC2X3_IfcValue_type), true)); - attributes.push_back(new entity::attribute("LowerBoundValue", new named_type(IFC2X3_IfcValue_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("UpperBoundValue", new named_type(IFC2X3_IfcValue_type), true)); + attributes.push_back(new attribute("LowerBoundValue", new named_type(IFC2X3_IfcValue_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyBoundedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyConstraintRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("DependingProperty", new named_type(IFC2X3_IfcProperty_type), false)); - attributes.push_back(new entity::attribute("DependantProperty", new named_type(IFC2X3_IfcProperty_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("DependingProperty", new named_type(IFC2X3_IfcProperty_type), false)); + attributes.push_back(new attribute("DependantProperty", new named_type(IFC2X3_IfcProperty_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Expression", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyDependencyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("EnumerationReference", new named_type(IFC2X3_IfcPropertyEnumeration_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("EnumerationReference", new named_type(IFC2X3_IfcPropertyEnumeration_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyEnumeratedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyEnumeration_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyListValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PropertyReference", new named_type(IFC2X3_IfcObjectReferenceSelect_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("UsageName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("PropertyReference", new named_type(IFC2X3_IfcObjectReferenceSelect_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyReferenceValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertySet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertySetDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("NominalValue", new named_type(IFC2X3_IfcValue_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("NominalValue", new named_type(IFC2X3_IfcValue_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertySingleValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("DefiningValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("DefinedValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("DefiningUnit", new named_type(IFC2X3_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("DefinedUnit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("DefiningValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("DefinedValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("Expression", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("DefiningUnit", new named_type(IFC2X3_IfcUnit_type), true)); + attributes.push_back(new attribute("DefinedUnit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyTableValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcProtectiveDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcProtectiveDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProtectiveDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProxyType", new named_type(IFC2X3_IfcObjectTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProxyType", new named_type(IFC2X3_IfcObjectTypeEnum_type), false)); + attributes.push_back(new attribute("Tag", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProxy_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPumpTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPumpTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPumpType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AreaValue", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AreaValue", new named_type(IFC2X3_IfcAreaMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CountValue", new named_type(IFC2X3_IfcCountMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CountValue", new named_type(IFC2X3_IfcCountMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityCount_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LengthValue", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LengthValue", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityLength_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TimeValue", new named_type(IFC2X3_IfcTimeMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TimeValue", new named_type(IFC2X3_IfcTimeMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("VolumeValue", new named_type(IFC2X3_IfcVolumeMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("VolumeValue", new named_type(IFC2X3_IfcVolumeMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityVolume_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WeightValue", new named_type(IFC2X3_IfcMassMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WeightValue", new named_type(IFC2X3_IfcMassMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityWeight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcRadiusDimension_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcRailingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcRailingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRailing_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcRailingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcRailingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRailingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ShapeType", new named_type(IFC2X3_IfcRampTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ShapeType", new named_type(IFC2X3_IfcRampTypeEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRamp_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRampFlight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcRampFlightTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcRampFlightTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRampFlightType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new simple_type(simple_type::real_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new simple_type(simple_type::real_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRationalBezierCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InnerFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OuterFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InnerFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OuterFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRectangleHollowProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("XDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("XDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRectangleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("XLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("XLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRectangularPyramid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC2X3_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("U1", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("V1", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("U2", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("V2", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("Usense", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("Vsense", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC2X3_IfcSurface_type), false)); + attributes.push_back(new attribute("U1", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("V1", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("U2", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("V2", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("Usense", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("Vsense", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRectangularTrimmedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ReferencedDocument", new named_type(IFC2X3_IfcDocumentSelect_type), false)); - attributes.push_back(new entity::attribute("ReferencingValues", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcAppliedValue_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ReferencedDocument", new named_type(IFC2X3_IfcDocumentSelect_type), false)); + attributes.push_back(new attribute("ReferencingValues", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcAppliedValue_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReferencesValueDocument_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeStep", new named_type(IFC2X3_IfcTimeMeasure_type), false)); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTimeSeriesValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeStep", new named_type(IFC2X3_IfcTimeMeasure_type), false)); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTimeSeriesValue_type)), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRegularTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TotalCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("SteelGrade", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC2X3_IfcReinforcingBarSurfaceEnum_type), true)); - attributes.push_back(new entity::attribute("EffectiveDepth", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalBarDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BarCount", new named_type(IFC2X3_IfcCountMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TotalCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("SteelGrade", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC2X3_IfcReinforcingBarSurfaceEnum_type), true)); + attributes.push_back(new attribute("EffectiveDepth", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalBarDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BarCount", new named_type(IFC2X3_IfcCountMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcementBarProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DefinitionType", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ReinforcementSectionDefinitions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSectionReinforcementProperties_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DefinitionType", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ReinforcementSectionDefinitions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSectionReinforcementProperties_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcementDefinitionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("BarLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BarRole", new named_type(IFC2X3_IfcReinforcingBarRoleEnum_type), false)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC2X3_IfcReinforcingBarSurfaceEnum_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("BarLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BarRole", new named_type(IFC2X3_IfcReinforcingBarRoleEnum_type), false)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC2X3_IfcReinforcingBarSurfaceEnum_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcingBar_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SteelGrade", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SteelGrade", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("MeshLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MeshWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarNominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TransverseBarNominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("LongitudinalBarCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("TransverseBarCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("LongitudinalBarSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TransverseBarSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("MeshLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MeshWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarNominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TransverseBarNominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("LongitudinalBarCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("TransverseBarCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("LongitudinalBarSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TransverseBarSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcingMesh_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAggregates_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObjectDefinition_type)), false)); - attributes.push_back(new entity::attribute("RelatedObjectsType", new named_type(IFC2X3_IfcObjectTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObjectDefinition_type)), false)); + attributes.push_back(new attribute("RelatedObjectsType", new named_type(IFC2X3_IfcObjectTypeEnum_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssigns_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TimeForTask", new named_type(IFC2X3_IfcScheduleTimeControl_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TimeForTask", new named_type(IFC2X3_IfcScheduleTimeControl_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsTasks_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingActor", new named_type(IFC2X3_IfcActor_type), false)); - attributes.push_back(new entity::attribute("ActingRole", new named_type(IFC2X3_IfcActorRole_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingActor", new named_type(IFC2X3_IfcActor_type), false)); + attributes.push_back(new attribute("ActingRole", new named_type(IFC2X3_IfcActorRole_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToActor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingControl", new named_type(IFC2X3_IfcControl_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingControl", new named_type(IFC2X3_IfcControl_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingGroup", new named_type(IFC2X3_IfcGroup_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingGroup", new named_type(IFC2X3_IfcGroup_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingProcess", new named_type(IFC2X3_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("QuantityInProcess", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingProcess", new named_type(IFC2X3_IfcProcess_type), false)); + attributes.push_back(new attribute("QuantityInProcess", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingProduct", new named_type(IFC2X3_IfcProduct_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingProduct", new named_type(IFC2X3_IfcProduct_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToProjectOrder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingResource", new named_type(IFC2X3_IfcResource_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingResource", new named_type(IFC2X3_IfcResource_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRoot_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRoot_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociates_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingAppliedValue", new named_type(IFC2X3_IfcAppliedValue_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingAppliedValue", new named_type(IFC2X3_IfcAppliedValue_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesAppliedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC2X3_IfcApproval_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC2X3_IfcApproval_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesApproval_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingClassification", new named_type(IFC2X3_IfcClassificationNotationSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingClassification", new named_type(IFC2X3_IfcClassificationNotationSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesClassification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Intent", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Intent", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesConstraint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingDocument", new named_type(IFC2X3_IfcDocumentSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingDocument", new named_type(IFC2X3_IfcDocumentSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesDocument_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingLibrary", new named_type(IFC2X3_IfcLibrarySelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingLibrary", new named_type(IFC2X3_IfcLibrarySelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesLibrary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingMaterial", new named_type(IFC2X3_IfcMaterialSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingMaterial", new named_type(IFC2X3_IfcMaterialSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesMaterial_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingProfileProperties", new named_type(IFC2X3_IfcProfileProperties_type), false)); - attributes.push_back(new entity::attribute("ProfileSectionLocation", new named_type(IFC2X3_IfcShapeAspect_type), true)); - attributes.push_back(new entity::attribute("ProfileOrientation", new named_type(IFC2X3_IfcOrientationSelect_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingProfileProperties", new named_type(IFC2X3_IfcProfileProperties_type), false)); + attributes.push_back(new attribute("ProfileSectionLocation", new named_type(IFC2X3_IfcShapeAspect_type), true)); + attributes.push_back(new attribute("ProfileOrientation", new named_type(IFC2X3_IfcOrientationSelect_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnects_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ConnectionGeometry", new named_type(IFC2X3_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC2X3_IfcElement_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ConnectionGeometry", new named_type(IFC2X3_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC2X3_IfcElement_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatingPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new simple_type(simple_type::integer_type)), false)); - attributes.push_back(new entity::attribute("RelatedPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new simple_type(simple_type::integer_type)), false)); - attributes.push_back(new entity::attribute("RelatedConnectionType", new named_type(IFC2X3_IfcConnectionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("RelatingConnectionType", new named_type(IFC2X3_IfcConnectionTypeEnum_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatingPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new simple_type(simple_type::integer_type)), false)); + attributes.push_back(new attribute("RelatedPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new simple_type(simple_type::integer_type)), false)); + attributes.push_back(new attribute("RelatedConnectionType", new named_type(IFC2X3_IfcConnectionTypeEnum_type), false)); + attributes.push_back(new attribute("RelatingConnectionType", new named_type(IFC2X3_IfcConnectionTypeEnum_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsPathElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingPort", new named_type(IFC2X3_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC2X3_IfcElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingPort", new named_type(IFC2X3_IfcPort_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC2X3_IfcElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsPortToElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingPort", new named_type(IFC2X3_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RelatedPort", new named_type(IFC2X3_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RealizingElement", new named_type(IFC2X3_IfcElement_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingPort", new named_type(IFC2X3_IfcPort_type), false)); + attributes.push_back(new attribute("RelatedPort", new named_type(IFC2X3_IfcPort_type), false)); + attributes.push_back(new attribute("RealizingElement", new named_type(IFC2X3_IfcElement_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsPorts_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC2X3_IfcStructuralActivityAssignmentSelect_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralActivity", new named_type(IFC2X3_IfcStructuralActivity_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC2X3_IfcStructuralActivityAssignmentSelect_type), false)); + attributes.push_back(new attribute("RelatedStructuralActivity", new named_type(IFC2X3_IfcStructuralActivity_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsStructuralActivity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralMember", new named_type(IFC2X3_IfcStructuralMember_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedStructuralMember", new named_type(IFC2X3_IfcStructuralMember_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsStructuralElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("RelatingStructuralMember", new named_type(IFC2X3_IfcStructuralMember_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralConnection", new named_type(IFC2X3_IfcStructuralConnection_type), false)); - attributes.push_back(new entity::attribute("AppliedCondition", new named_type(IFC2X3_IfcBoundaryCondition_type), true)); - attributes.push_back(new entity::attribute("AdditionalConditions", new named_type(IFC2X3_IfcStructuralConnectionCondition_type), true)); - attributes.push_back(new entity::attribute("SupportedLength", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ConditionCoordinateSystem", new named_type(IFC2X3_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("RelatingStructuralMember", new named_type(IFC2X3_IfcStructuralMember_type), false)); + attributes.push_back(new attribute("RelatedStructuralConnection", new named_type(IFC2X3_IfcStructuralConnection_type), false)); + attributes.push_back(new attribute("AppliedCondition", new named_type(IFC2X3_IfcBoundaryCondition_type), true)); + attributes.push_back(new attribute("AdditionalConditions", new named_type(IFC2X3_IfcStructuralConnectionCondition_type), true)); + attributes.push_back(new attribute("SupportedLength", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ConditionCoordinateSystem", new named_type(IFC2X3_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsStructuralMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ConnectionConstraint", new named_type(IFC2X3_IfcConnectionGeometry_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ConnectionConstraint", new named_type(IFC2X3_IfcConnectionGeometry_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsWithEccentricity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RealizingElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcElement_type)), false)); - attributes.push_back(new entity::attribute("ConnectionType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RealizingElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcElement_type)), false)); + attributes.push_back(new attribute("ConnectionType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsWithRealizingElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProduct_type)), false)); - attributes.push_back(new entity::attribute("RelatingStructure", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProduct_type)), false)); + attributes.push_back(new attribute("RelatingStructure", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelContainedInSpatialStructure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCovering_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCovering_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelCoversBldgElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedSpace", new named_type(IFC2X3_IfcSpace_type), false)); - attributes.push_back(new entity::attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCovering_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedSpace", new named_type(IFC2X3_IfcSpace_type), false)); + attributes.push_back(new attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCovering_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelCoversSpaces_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingObject", new named_type(IFC2X3_IfcObjectDefinition_type), false)); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObjectDefinition_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingObject", new named_type(IFC2X3_IfcObjectDefinition_type), false)); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObjectDefinition_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelDecomposes_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObject_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObject_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelDefines_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingPropertyDefinition", new named_type(IFC2X3_IfcPropertySetDefinition_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingPropertyDefinition", new named_type(IFC2X3_IfcPropertySetDefinition_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelDefinesByProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingType", new named_type(IFC2X3_IfcTypeObject_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingType", new named_type(IFC2X3_IfcTypeObject_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelDefinesByType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingOpeningElement", new named_type(IFC2X3_IfcOpeningElement_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingOpeningElement", new named_type(IFC2X3_IfcOpeningElement_type), false)); + attributes.push_back(new attribute("RelatedBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelFillsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedControlElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDistributionControlElement_type)), false)); - attributes.push_back(new entity::attribute("RelatingFlowElement", new named_type(IFC2X3_IfcDistributionFlowElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedControlElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDistributionControlElement_type)), false)); + attributes.push_back(new attribute("RelatingFlowElement", new named_type(IFC2X3_IfcDistributionFlowElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelFlowControlElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("DailyInteraction", new named_type(IFC2X3_IfcCountMeasure_type), true)); - attributes.push_back(new entity::attribute("ImportanceRating", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("LocationOfInteraction", new named_type(IFC2X3_IfcSpatialStructureElement_type), true)); - attributes.push_back(new entity::attribute("RelatedSpaceProgram", new named_type(IFC2X3_IfcSpaceProgram_type), false)); - attributes.push_back(new entity::attribute("RelatingSpaceProgram", new named_type(IFC2X3_IfcSpaceProgram_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("DailyInteraction", new named_type(IFC2X3_IfcCountMeasure_type), true)); + attributes.push_back(new attribute("ImportanceRating", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("LocationOfInteraction", new named_type(IFC2X3_IfcSpatialStructureElement_type), true)); + attributes.push_back(new attribute("RelatedSpaceProgram", new named_type(IFC2X3_IfcSpaceProgram_type), false)); + attributes.push_back(new attribute("RelatingSpaceProgram", new named_type(IFC2X3_IfcSpaceProgram_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelInteractionRequirements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelNests_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelOccupiesSpaces_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("OverridingProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("OverridingProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelOverridesProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedFeatureElement", new named_type(IFC2X3_IfcFeatureElementAddition_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedFeatureElement", new named_type(IFC2X3_IfcFeatureElementAddition_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelProjectsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProduct_type)), false)); - attributes.push_back(new entity::attribute("RelatingStructure", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProduct_type)), false)); + attributes.push_back(new attribute("RelatingStructure", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelReferencedInSpatialStructure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelSchedulesCostItems_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatingProcess", new named_type(IFC2X3_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("RelatedProcess", new named_type(IFC2X3_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("TimeLag", new named_type(IFC2X3_IfcTimeMeasure_type), false)); - attributes.push_back(new entity::attribute("SequenceType", new named_type(IFC2X3_IfcSequenceEnum_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatingProcess", new named_type(IFC2X3_IfcProcess_type), false)); + attributes.push_back(new attribute("RelatedProcess", new named_type(IFC2X3_IfcProcess_type), false)); + attributes.push_back(new attribute("TimeLag", new named_type(IFC2X3_IfcTimeMeasure_type), false)); + attributes.push_back(new attribute("SequenceType", new named_type(IFC2X3_IfcSequenceEnum_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelSequence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingSystem", new named_type(IFC2X3_IfcSystem_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcSpatialStructureElement_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingSystem", new named_type(IFC2X3_IfcSystem_type), false)); + attributes.push_back(new attribute("RelatedBuildings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcSpatialStructureElement_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelServicesBuildings_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingSpace", new named_type(IFC2X3_IfcSpace_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildingElement", new named_type(IFC2X3_IfcElement_type), true)); - attributes.push_back(new entity::attribute("ConnectionGeometry", new named_type(IFC2X3_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("PhysicalOrVirtualBoundary", new named_type(IFC2X3_IfcPhysicalOrVirtualEnum_type), false)); - attributes.push_back(new entity::attribute("InternalOrExternalBoundary", new named_type(IFC2X3_IfcInternalOrExternalEnum_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingSpace", new named_type(IFC2X3_IfcSpace_type), false)); + attributes.push_back(new attribute("RelatedBuildingElement", new named_type(IFC2X3_IfcElement_type), true)); + attributes.push_back(new attribute("ConnectionGeometry", new named_type(IFC2X3_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("PhysicalOrVirtualBoundary", new named_type(IFC2X3_IfcPhysicalOrVirtualEnum_type), false)); + attributes.push_back(new attribute("InternalOrExternalBoundary", new named_type(IFC2X3_IfcInternalOrExternalEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelSpaceBoundary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedOpeningElement", new named_type(IFC2X3_IfcFeatureElementSubtraction_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedOpeningElement", new named_type(IFC2X3_IfcFeatureElementSubtraction_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelVoidsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelaxationValue", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("InitialStress", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelaxationValue", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("InitialStress", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelaxation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ContextOfItems", new named_type(IFC2X3_IfcRepresentationContext_type), false)); - attributes.push_back(new entity::attribute("RepresentationIdentifier", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RepresentationType", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Items", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRepresentationItem_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ContextOfItems", new named_type(IFC2X3_IfcRepresentationContext_type), false)); + attributes.push_back(new attribute("RepresentationIdentifier", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("RepresentationType", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Items", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRepresentationItem_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ContextIdentifier", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ContextType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ContextIdentifier", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ContextType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRepresentationContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappingOrigin", new named_type(IFC2X3_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("MappedRepresentation", new named_type(IFC2X3_IfcRepresentation_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappingOrigin", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("MappedRepresentation", new named_type(IFC2X3_IfcRepresentation_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRepresentationMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC2X3_IfcAxis1Placement_type), false)); - attributes.push_back(new entity::attribute("Angle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Axis", new named_type(IFC2X3_IfcAxis1Placement_type), false)); + attributes.push_back(new attribute("Angle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRevolvedAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RibHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RibWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RibSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Direction", new named_type(IFC2X3_IfcRibPlateDirectionEnum_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("RibHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("RibWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("RibSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("Direction", new named_type(IFC2X3_IfcRibPlateDirectionEnum_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRibPlateProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BottomRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BottomRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRightCircularCone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRightCircularCylinder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ShapeType", new named_type(IFC2X3_IfcRoofTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ShapeType", new named_type(IFC2X3_IfcRoofTypeEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRoof_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("GlobalId", new named_type(IFC2X3_IfcGloballyUniqueId_type), false)); - attributes.push_back(new entity::attribute("OwnerHistory", new named_type(IFC2X3_IfcOwnerHistory_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("GlobalId", new named_type(IFC2X3_IfcGloballyUniqueId_type), false)); + attributes.push_back(new attribute("OwnerHistory", new named_type(IFC2X3_IfcOwnerHistory_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRoot_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRoundedEdgeFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RoundingRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RoundingRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRoundedRectangleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Prefix", new named_type(IFC2X3_IfcSIPrefix_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcSIUnitName_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Prefix", new named_type(IFC2X3_IfcSIPrefix_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcSIUnitName_type), false)); std::vector derived; derived.reserve(4); derived.push_back(true); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSIUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSanitaryTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSanitaryTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSanitaryTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(18); - attributes.push_back(new entity::attribute("ActualStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("EarlyStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("LateStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ScheduleStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ActualFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("EarlyFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("LateFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ScheduleFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ScheduleDuration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("ActualDuration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("RemainingTime", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("FreeFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("TotalFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("IsCritical", new simple_type(simple_type::boolean_type), true)); - attributes.push_back(new entity::attribute("StatusTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("StartFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("FinishFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("Completion", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(18); + attributes.push_back(new attribute("ActualStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("EarlyStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("LateStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ScheduleStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ActualFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("EarlyFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("LateFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ScheduleFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ScheduleDuration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("ActualDuration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("RemainingTime", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("FreeFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("TotalFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("IsCritical", new simple_type(simple_type::boolean_type), true)); + attributes.push_back(new attribute("StatusTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("StartFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("FinishFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("Completion", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(23); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcScheduleTimeControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SectionType", new named_type(IFC2X3_IfcSectionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("StartProfile", new named_type(IFC2X3_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("EndProfile", new named_type(IFC2X3_IfcProfileDef_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SectionType", new named_type(IFC2X3_IfcSectionTypeEnum_type), false)); + attributes.push_back(new attribute("StartProfile", new named_type(IFC2X3_IfcProfileDef_type), false)); + attributes.push_back(new attribute("EndProfile", new named_type(IFC2X3_IfcProfileDef_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSectionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LongitudinalStartPosition", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("LongitudinalEndPosition", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TransversePosition", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ReinforcementRole", new named_type(IFC2X3_IfcReinforcingBarRoleEnum_type), false)); - attributes.push_back(new entity::attribute("SectionDefinition", new named_type(IFC2X3_IfcSectionProperties_type), false)); - attributes.push_back(new entity::attribute("CrossSectionReinforcementDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcReinforcementBarProperties_type)), false)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LongitudinalStartPosition", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("LongitudinalEndPosition", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("TransversePosition", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ReinforcementRole", new named_type(IFC2X3_IfcReinforcingBarRoleEnum_type), false)); + attributes.push_back(new attribute("SectionDefinition", new named_type(IFC2X3_IfcSectionProperties_type), false)); + attributes.push_back(new attribute("CrossSectionReinforcementDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcReinforcementBarProperties_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSectionReinforcementProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SpineCurve", new named_type(IFC2X3_IfcCompositeCurve_type), false)); - attributes.push_back(new entity::attribute("CrossSections", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcProfileDef_type)), false)); - attributes.push_back(new entity::attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcAxis2Placement3D_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SpineCurve", new named_type(IFC2X3_IfcCompositeCurve_type), false)); + attributes.push_back(new attribute("CrossSections", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcProfileDef_type)), false)); + attributes.push_back(new attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcAxis2Placement3D_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSectionedSpine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSensorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSensorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSensorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ServiceLifeType", new named_type(IFC2X3_IfcServiceLifeTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ServiceLifeDuration", new named_type(IFC2X3_IfcTimeMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ServiceLifeType", new named_type(IFC2X3_IfcServiceLifeTypeEnum_type), false)); + attributes.push_back(new attribute("ServiceLifeDuration", new named_type(IFC2X3_IfcTimeMeasure_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcServiceLife_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcServiceLifeFactorTypeEnum_type), false)); - attributes.push_back(new entity::attribute("UpperValue", new named_type(IFC2X3_IfcMeasureValue_type), true)); - attributes.push_back(new entity::attribute("MostUsedValue", new named_type(IFC2X3_IfcMeasureValue_type), false)); - attributes.push_back(new entity::attribute("LowerValue", new named_type(IFC2X3_IfcMeasureValue_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcServiceLifeFactorTypeEnum_type), false)); + attributes.push_back(new attribute("UpperValue", new named_type(IFC2X3_IfcMeasureValue_type), true)); + attributes.push_back(new attribute("MostUsedValue", new named_type(IFC2X3_IfcMeasureValue_type), false)); + attributes.push_back(new attribute("LowerValue", new named_type(IFC2X3_IfcMeasureValue_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcServiceLifeFactor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ShapeRepresentations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcShapeModel_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("ProductDefinitional", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("PartOfProductDefinitionShape", new named_type(IFC2X3_IfcProductDefinitionShape_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ShapeRepresentations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcShapeModel_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("ProductDefinitional", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("PartOfProductDefinitionShape", new named_type(IFC2X3_IfcProductDefinitionShape_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcShapeAspect_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcShapeModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcShapeRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SbsmBoundary", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SbsmBoundary", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcShell_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcShellBasedSurfaceModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSimpleProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RefLatitude", new named_type(IFC2X3_IfcCompoundPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RefLongitude", new named_type(IFC2X3_IfcCompoundPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RefElevation", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LandTitleNumber", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("SiteAddress", new named_type(IFC2X3_IfcPostalAddress_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RefLatitude", new named_type(IFC2X3_IfcCompoundPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RefLongitude", new named_type(IFC2X3_IfcCompoundPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RefElevation", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LandTitleNumber", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("SiteAddress", new named_type(IFC2X3_IfcPostalAddress_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSite_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSlabTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSlabTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSlab_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSlabTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSlabTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSlabType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SlippageX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("SlippageY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("SlippageZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SlippageX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("SlippageY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("SlippageZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSlippageConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcSolidModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("IsAttenuating", new named_type(IFC2X3_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("SoundScale", new named_type(IFC2X3_IfcSoundScaleEnum_type), true)); - attributes.push_back(new entity::attribute("SoundValues", new aggregation_type(aggregation_type::list_type, 1, 8, new named_type(IFC2X3_IfcSoundValue_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("IsAttenuating", new named_type(IFC2X3_IfcBoolean_type), false)); + attributes.push_back(new attribute("SoundScale", new named_type(IFC2X3_IfcSoundScaleEnum_type), true)); + attributes.push_back(new attribute("SoundValues", new aggregation_type(aggregation_type::list_type, 1, 8, new named_type(IFC2X3_IfcSoundValue_type)), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSoundProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SoundLevelTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("Frequency", new named_type(IFC2X3_IfcFrequencyMeasure_type), false)); - attributes.push_back(new entity::attribute("SoundLevelSingleValue", new named_type(IFC2X3_IfcDerivedMeasureValue_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SoundLevelTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("Frequency", new named_type(IFC2X3_IfcFrequencyMeasure_type), false)); + attributes.push_back(new attribute("SoundLevelSingleValue", new named_type(IFC2X3_IfcDerivedMeasureValue_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSoundValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("InteriorOrExteriorSpace", new named_type(IFC2X3_IfcInternalOrExternalEnum_type), false)); - attributes.push_back(new entity::attribute("ElevationWithFlooring", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("InteriorOrExteriorSpace", new named_type(IFC2X3_IfcInternalOrExternalEnum_type), false)); + attributes.push_back(new attribute("ElevationWithFlooring", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSpaceHeaterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSpaceHeaterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpaceHeaterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("SpaceProgramIdentifier", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("MaxRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("MinRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("RequestedLocation", new named_type(IFC2X3_IfcSpatialStructureElement_type), true)); - attributes.push_back(new entity::attribute("StandardRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("SpaceProgramIdentifier", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("MaxRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("MinRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("RequestedLocation", new named_type(IFC2X3_IfcSpatialStructureElement_type), true)); + attributes.push_back(new attribute("StandardRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpaceProgram_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(10); - attributes.push_back(new entity::attribute("ApplicableValueRatio", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalLoadSource", new named_type(IFC2X3_IfcThermalLoadSourceEnum_type), false)); - attributes.push_back(new entity::attribute("PropertySource", new named_type(IFC2X3_IfcPropertySourceEnum_type), false)); - attributes.push_back(new entity::attribute("SourceDescription", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("MaximumValue", new named_type(IFC2X3_IfcPowerMeasure_type), false)); - attributes.push_back(new entity::attribute("MinimumValue", new named_type(IFC2X3_IfcPowerMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalLoadTimeSeriesValues", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("UserDefinedThermalLoadSource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPropertySource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ThermalLoadType", new named_type(IFC2X3_IfcThermalLoadTypeEnum_type), false)); + std::vector attributes; attributes.reserve(10); + attributes.push_back(new attribute("ApplicableValueRatio", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalLoadSource", new named_type(IFC2X3_IfcThermalLoadSourceEnum_type), false)); + attributes.push_back(new attribute("PropertySource", new named_type(IFC2X3_IfcPropertySourceEnum_type), false)); + attributes.push_back(new attribute("SourceDescription", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("MaximumValue", new named_type(IFC2X3_IfcPowerMeasure_type), false)); + attributes.push_back(new attribute("MinimumValue", new named_type(IFC2X3_IfcPowerMeasure_type), true)); + attributes.push_back(new attribute("ThermalLoadTimeSeriesValues", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("UserDefinedThermalLoadSource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("UserDefinedPropertySource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ThermalLoadType", new named_type(IFC2X3_IfcThermalLoadTypeEnum_type), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpaceThermalLoadProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSpaceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSpaceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpaceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CompositionType", new named_type(IFC2X3_IfcElementCompositionEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LongName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("CompositionType", new named_type(IFC2X3_IfcElementCompositionEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpatialStructureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpatialStructureElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSphere_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcStackTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcStackTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStackTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ShapeType", new named_type(IFC2X3_IfcStairTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ShapeType", new named_type(IFC2X3_IfcStairTypeEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStair_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("NumberOfRiser", new simple_type(simple_type::integer_type), true)); - attributes.push_back(new entity::attribute("NumberOfTreads", new simple_type(simple_type::integer_type), true)); - attributes.push_back(new entity::attribute("RiserHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TreadLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("NumberOfRiser", new simple_type(simple_type::integer_type), true)); + attributes.push_back(new attribute("NumberOfTreads", new simple_type(simple_type::integer_type), true)); + attributes.push_back(new attribute("RiserHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TreadLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStairFlight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcStairFlightTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcStairFlightTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStairFlightType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DestabilizingLoad", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("CausedBy", new named_type(IFC2X3_IfcStructuralReaction_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DestabilizingLoad", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("CausedBy", new named_type(IFC2X3_IfcStructuralReaction_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AppliedLoad", new named_type(IFC2X3_IfcStructuralLoad_type), false)); - attributes.push_back(new entity::attribute("GlobalOrLocal", new named_type(IFC2X3_IfcGlobalOrLocalEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AppliedLoad", new named_type(IFC2X3_IfcStructuralLoad_type), false)); + attributes.push_back(new attribute("GlobalOrLocal", new named_type(IFC2X3_IfcGlobalOrLocalEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralActivity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAnalysisModelTypeEnum_type), false)); - attributes.push_back(new entity::attribute("OrientationOf2DPlane", new named_type(IFC2X3_IfcAxis2Placement3D_type), true)); - attributes.push_back(new entity::attribute("LoadedBy", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcStructuralLoadGroup_type)), true)); - attributes.push_back(new entity::attribute("HasResults", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcStructuralResultGroup_type)), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAnalysisModelTypeEnum_type), false)); + attributes.push_back(new attribute("OrientationOf2DPlane", new named_type(IFC2X3_IfcAxis2Placement3D_type), true)); + attributes.push_back(new attribute("LoadedBy", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcStructuralLoadGroup_type)), true)); + attributes.push_back(new attribute("HasResults", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcStructuralResultGroup_type)), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralAnalysisModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AppliedCondition", new named_type(IFC2X3_IfcBoundaryCondition_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AppliedCondition", new named_type(IFC2X3_IfcBoundaryCondition_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcStructuralConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralCurveConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcStructuralCurveTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcStructuralCurveTypeEnum_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralCurveMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralCurveMemberVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ProjectedOrTrue", new named_type(IFC2X3_IfcProjectedOrTrueLengthEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ProjectedOrTrue", new named_type(IFC2X3_IfcProjectedOrTrueLengthEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLinearAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VaryingAppliedLoadLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); - attributes.push_back(new entity::attribute("SubsequentAppliedLoads", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcStructuralLoad_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VaryingAppliedLoadLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); + attributes.push_back(new attribute("SubsequentAppliedLoads", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcStructuralLoad_type)), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLinearActionVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcStructuralLoad_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcLoadGroupTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ActionType", new named_type(IFC2X3_IfcActionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ActionSource", new named_type(IFC2X3_IfcActionSourceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Coefficient", new named_type(IFC2X3_IfcRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcLoadGroupTypeEnum_type), false)); + attributes.push_back(new attribute("ActionType", new named_type(IFC2X3_IfcActionTypeEnum_type), false)); + attributes.push_back(new attribute("ActionSource", new named_type(IFC2X3_IfcActionSourceTypeEnum_type), false)); + attributes.push_back(new attribute("Coefficient", new named_type(IFC2X3_IfcRatioMeasure_type), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LinearForceX", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearForceY", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearForceZ", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentX", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentY", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentZ", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LinearForceX", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearForceY", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearForceZ", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentX", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentY", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentZ", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadLinearForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PlanarForceX", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PlanarForceY", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PlanarForceZ", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PlanarForceX", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); + attributes.push_back(new attribute("PlanarForceY", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); + attributes.push_back(new attribute("PlanarForceZ", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadPlanarForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("DisplacementX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("DisplacementY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("DisplacementZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRX", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRY", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRZ", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("DisplacementX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("DisplacementY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("DisplacementZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRX", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRY", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRZ", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadSingleDisplacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Distortion", new named_type(IFC2X3_IfcCurvatureMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Distortion", new named_type(IFC2X3_IfcCurvatureMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadSingleDisplacementDistortion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("ForceX", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("ForceY", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("ForceZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentX", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentY", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentZ", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("ForceX", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("ForceY", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("ForceZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("MomentX", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); + attributes.push_back(new attribute("MomentY", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); + attributes.push_back(new attribute("MomentZ", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadSingleForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WarpingMoment", new named_type(IFC2X3_IfcWarpingMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WarpingMoment", new named_type(IFC2X3_IfcWarpingMomentMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadSingleForceWarping_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcStructuralLoadStatic_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("DeltaT_Constant", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("DeltaT_Y", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("DeltaT_Z", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("DeltaT_Constant", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("DeltaT_Y", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("DeltaT_Z", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadTemperature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ProjectedOrTrue", new named_type(IFC2X3_IfcProjectedOrTrueLengthEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ProjectedOrTrue", new named_type(IFC2X3_IfcProjectedOrTrueLengthEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPlanarAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VaryingAppliedLoadLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); - attributes.push_back(new entity::attribute("SubsequentAppliedLoads", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcStructuralLoad_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VaryingAppliedLoadLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); + attributes.push_back(new attribute("SubsequentAppliedLoads", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcStructuralLoad_type)), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPlanarActionVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPointAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPointConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPointReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(16); - attributes.push_back(new entity::attribute("TorsionalConstantX", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentOfInertiaYZ", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentOfInertiaY", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentOfInertiaZ", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); - attributes.push_back(new entity::attribute("WarpingConstant", new named_type(IFC2X3_IfcWarpingConstantMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearCentreZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearCentreY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearDeformationAreaZ", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearDeformationAreaY", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("MaximumSectionModulusY", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("MinimumSectionModulusY", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("MaximumSectionModulusZ", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("MinimumSectionModulusZ", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("TorsionalSectionModulus", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(16); + attributes.push_back(new attribute("TorsionalConstantX", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); + attributes.push_back(new attribute("MomentOfInertiaYZ", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); + attributes.push_back(new attribute("MomentOfInertiaY", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); + attributes.push_back(new attribute("MomentOfInertiaZ", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); + attributes.push_back(new attribute("WarpingConstant", new named_type(IFC2X3_IfcWarpingConstantMeasure_type), true)); + attributes.push_back(new attribute("ShearCentreZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ShearCentreY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ShearDeformationAreaZ", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("ShearDeformationAreaY", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("MaximumSectionModulusY", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("MinimumSectionModulusY", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("MaximumSectionModulusZ", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("MinimumSectionModulusZ", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("TorsionalSectionModulus", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(23); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TheoryType", new named_type(IFC2X3_IfcAnalysisTheoryTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ResultForLoadGroup", new named_type(IFC2X3_IfcStructuralLoadGroup_type), true)); - attributes.push_back(new entity::attribute("IsLinear", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TheoryType", new named_type(IFC2X3_IfcAnalysisTheoryTypeEnum_type), false)); + attributes.push_back(new attribute("ResultForLoadGroup", new named_type(IFC2X3_IfcStructuralLoadGroup_type), true)); + attributes.push_back(new attribute("IsLinear", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralResultGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ShearAreaZ", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearAreaY", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("PlasticShapeFactorY", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("PlasticShapeFactorZ", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ShearAreaZ", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("ShearAreaY", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("PlasticShapeFactorY", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("PlasticShapeFactorZ", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(27); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralSteelProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralSurfaceConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcStructuralSurfaceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcStructuralSurfaceTypeEnum_type), false)); + attributes.push_back(new attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralSurfaceMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SubsequentThickness", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcPositiveLengthMeasure_type)), false)); - attributes.push_back(new entity::attribute("VaryingThicknessLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SubsequentThickness", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcPositiveLengthMeasure_type)), false)); + attributes.push_back(new attribute("VaryingThicknessLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralSurfaceMemberVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcStructuredDimensionCallout_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStyleModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Item", new named_type(IFC2X3_IfcRepresentationItem_type), true)); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPresentationStyleAssignment_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Item", new named_type(IFC2X3_IfcRepresentationItem_type), true)); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPresentationStyleAssignment_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStyledItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStyledRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SubContractor", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("JobDescription", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SubContractor", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("JobDescription", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSubContractResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ParentEdge", new named_type(IFC2X3_IfcEdge_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ParentEdge", new named_type(IFC2X3_IfcEdge_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSubedge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("ReferenceSurface", new named_type(IFC2X3_IfcSurface_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Directrix", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("StartParam", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("EndParam", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("ReferenceSurface", new named_type(IFC2X3_IfcSurface_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceCurveSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ExtrudedDirection", new named_type(IFC2X3_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ExtrudedDirection", new named_type(IFC2X3_IfcDirection_type), false)); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceOfLinearExtrusion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AxisPosition", new named_type(IFC2X3_IfcAxis1Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AxisPosition", new named_type(IFC2X3_IfcAxis1Placement_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceOfRevolution_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Side", new named_type(IFC2X3_IfcSurfaceSide_type), false)); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC2X3_IfcSurfaceStyleElementSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Side", new named_type(IFC2X3_IfcSurfaceSide_type), false)); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC2X3_IfcSurfaceStyleElementSelect_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("DiffuseTransmissionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("DiffuseReflectionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("TransmissionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("ReflectanceColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("DiffuseTransmissionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + attributes.push_back(new attribute("DiffuseReflectionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + attributes.push_back(new attribute("TransmissionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + attributes.push_back(new attribute("ReflectanceColour", new named_type(IFC2X3_IfcColourRgb_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceStyleLighting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RefractionIndex", new named_type(IFC2X3_IfcReal_type), true)); - attributes.push_back(new entity::attribute("DispersionFactor", new named_type(IFC2X3_IfcReal_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RefractionIndex", new named_type(IFC2X3_IfcReal_type), true)); + attributes.push_back(new attribute("DispersionFactor", new named_type(IFC2X3_IfcReal_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceStyleRefraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Transparency", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("DiffuseColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("TransmissionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("DiffuseTransmissionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("ReflectionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("SpecularColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("SpecularHighlight", new named_type(IFC2X3_IfcSpecularHighlightSelect_type), true)); - attributes.push_back(new entity::attribute("ReflectanceMethod", new named_type(IFC2X3_IfcReflectanceMethodEnum_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Transparency", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("DiffuseColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("TransmissionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("DiffuseTransmissionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("ReflectionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("SpecularColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("SpecularHighlight", new named_type(IFC2X3_IfcSpecularHighlightSelect_type), true)); + attributes.push_back(new attribute("ReflectanceMethod", new named_type(IFC2X3_IfcReflectanceMethodEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceStyleRendering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SurfaceColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SurfaceColour", new named_type(IFC2X3_IfcColourRgb_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcSurfaceStyleShading_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Textures", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSurfaceTexture_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Textures", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSurfaceTexture_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcSurfaceStyleWithTextures_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RepeatS", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("RepeatT", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("TextureType", new named_type(IFC2X3_IfcSurfaceTextureEnum_type), false)); - attributes.push_back(new entity::attribute("TextureTransform", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RepeatS", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("RepeatT", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("TextureType", new named_type(IFC2X3_IfcSurfaceTextureEnum_type), false)); + attributes.push_back(new attribute("TextureTransform", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SweptArea", new named_type(IFC2X3_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SweptArea", new named_type(IFC2X3_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InnerRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC2X3_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Directrix", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InnerRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("StartParam", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("EndParam", new named_type(IFC2X3_IfcParameterValue_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSweptDiskSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SweptCurve", new named_type(IFC2X3_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SweptCurve", new named_type(IFC2X3_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSweptSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSwitchingDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSwitchingDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSwitchingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("StyleOfSymbol", new named_type(IFC2X3_IfcSymbolStyleSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("StyleOfSymbol", new named_type(IFC2X3_IfcSymbolStyleSelect_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSymbolStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSystemFurnitureElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(10); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeEdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("WebEdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("WebSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(10); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeEdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("WebEdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("WebSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new simple_type(simple_type::string_type), false)); - attributes.push_back(new entity::attribute("Rows", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTableRow_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new simple_type(simple_type::string_type), false)); + attributes.push_back(new attribute("Rows", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTableRow_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTable_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RowCells", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("IsHeading", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RowCells", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("IsHeading", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTableRow_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTankTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTankTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTankType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("TaskId", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("WorkMethod", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("IsMilestone", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("Priority", new simple_type(simple_type::integer_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("TaskId", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("WorkMethod", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("IsMilestone", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("Priority", new simple_type(simple_type::integer_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTask_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("TelephoneNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("FacsimileNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PagerNumber", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ElectronicMailAddresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("WWWHomePageURL", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("TelephoneNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("FacsimileNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("PagerNumber", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ElectronicMailAddresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("WWWHomePageURL", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTelecomAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTendonTypeEnum_type), false)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("TensionForce", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PreStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("FrictionCoefficient", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("AnchorageSlip", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MinCurvatureRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTendonTypeEnum_type), false)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("TensionForce", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("PreStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("FrictionCoefficient", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("AnchorageSlip", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MinCurvatureRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTendon_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTendonAnchor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AnnotatedCurve", new named_type(IFC2X3_IfcAnnotationCurveOccurrence_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AnnotatedCurve", new named_type(IFC2X3_IfcAnnotationCurveOccurrence_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTerminatorSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Literal", new named_type(IFC2X3_IfcPresentableText_type), false)); - attributes.push_back(new entity::attribute("Placement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("Path", new named_type(IFC2X3_IfcTextPath_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Literal", new named_type(IFC2X3_IfcPresentableText_type), false)); + attributes.push_back(new attribute("Placement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("Path", new named_type(IFC2X3_IfcTextPath_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextLiteral_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Extent", new named_type(IFC2X3_IfcPlanarExtent_type), false)); - attributes.push_back(new entity::attribute("BoxAlignment", new named_type(IFC2X3_IfcBoxAlignment_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Extent", new named_type(IFC2X3_IfcPlanarExtent_type), false)); + attributes.push_back(new attribute("BoxAlignment", new named_type(IFC2X3_IfcBoxAlignment_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextLiteralWithExtent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TextCharacterAppearance", new named_type(IFC2X3_IfcCharacterStyleSelect_type), true)); - attributes.push_back(new entity::attribute("TextStyle", new named_type(IFC2X3_IfcTextStyleSelect_type), true)); - attributes.push_back(new entity::attribute("TextFontStyle", new named_type(IFC2X3_IfcTextFontSelect_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TextCharacterAppearance", new named_type(IFC2X3_IfcCharacterStyleSelect_type), true)); + attributes.push_back(new attribute("TextStyle", new named_type(IFC2X3_IfcTextStyleSelect_type), true)); + attributes.push_back(new attribute("TextFontStyle", new named_type(IFC2X3_IfcTextFontSelect_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("FontFamily", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTextFontName_type)), true)); - attributes.push_back(new entity::attribute("FontStyle", new named_type(IFC2X3_IfcFontStyle_type), true)); - attributes.push_back(new entity::attribute("FontVariant", new named_type(IFC2X3_IfcFontVariant_type), true)); - attributes.push_back(new entity::attribute("FontWeight", new named_type(IFC2X3_IfcFontWeight_type), true)); - attributes.push_back(new entity::attribute("FontSize", new named_type(IFC2X3_IfcSizeSelect_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("FontFamily", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTextFontName_type)), true)); + attributes.push_back(new attribute("FontStyle", new named_type(IFC2X3_IfcFontStyle_type), true)); + attributes.push_back(new attribute("FontVariant", new named_type(IFC2X3_IfcFontVariant_type), true)); + attributes.push_back(new attribute("FontWeight", new named_type(IFC2X3_IfcFontWeight_type), true)); + attributes.push_back(new attribute("FontSize", new named_type(IFC2X3_IfcSizeSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyleFontModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Colour", new named_type(IFC2X3_IfcColour_type), false)); - attributes.push_back(new entity::attribute("BackgroundColour", new named_type(IFC2X3_IfcColour_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Colour", new named_type(IFC2X3_IfcColour_type), false)); + attributes.push_back(new attribute("BackgroundColour", new named_type(IFC2X3_IfcColour_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyleForDefinedFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("TextIndent", new named_type(IFC2X3_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("TextAlign", new named_type(IFC2X3_IfcTextAlignment_type), true)); - attributes.push_back(new entity::attribute("TextDecoration", new named_type(IFC2X3_IfcTextDecoration_type), true)); - attributes.push_back(new entity::attribute("LetterSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("WordSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("TextTransform", new named_type(IFC2X3_IfcTextTransformation_type), true)); - attributes.push_back(new entity::attribute("LineHeight", new named_type(IFC2X3_IfcSizeSelect_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("TextIndent", new named_type(IFC2X3_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("TextAlign", new named_type(IFC2X3_IfcTextAlignment_type), true)); + attributes.push_back(new attribute("TextDecoration", new named_type(IFC2X3_IfcTextDecoration_type), true)); + attributes.push_back(new attribute("LetterSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("WordSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("TextTransform", new named_type(IFC2X3_IfcTextTransformation_type), true)); + attributes.push_back(new attribute("LineHeight", new named_type(IFC2X3_IfcSizeSelect_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyleTextModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("BoxHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BoxWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BoxSlantAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("BoxRotateAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("CharacterSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("BoxHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BoxWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BoxSlantAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("BoxRotateAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("CharacterSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyleWithBoxCharacteristics_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcTextureCoordinate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Mode", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSimpleValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Mode", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSimpleValue_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextureCoordinateGenerator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TextureMaps", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcVertexBasedTextureMap_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TextureMaps", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcVertexBasedTextureMap_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC2X3_IfcParameterValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC2X3_IfcParameterValue_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcTextureVertex_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("SpecificHeatCapacity", new named_type(IFC2X3_IfcSpecificHeatCapacityMeasure_type), true)); - attributes.push_back(new entity::attribute("BoilingPoint", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("FreezingPoint", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalConductivity", new named_type(IFC2X3_IfcThermalConductivityMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("SpecificHeatCapacity", new named_type(IFC2X3_IfcSpecificHeatCapacityMeasure_type), true)); + attributes.push_back(new attribute("BoilingPoint", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("FreezingPoint", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("ThermalConductivity", new named_type(IFC2X3_IfcThermalConductivityMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcThermalMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("EndTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("TimeSeriesDataType", new named_type(IFC2X3_IfcTimeSeriesDataTypeEnum_type), false)); - attributes.push_back(new entity::attribute("DataOrigin", new named_type(IFC2X3_IfcDataOriginEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedDataOrigin", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("StartTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("EndTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("TimeSeriesDataType", new named_type(IFC2X3_IfcTimeSeriesDataTypeEnum_type), false)); + attributes.push_back(new attribute("DataOrigin", new named_type(IFC2X3_IfcDataOriginEnum_type), false)); + attributes.push_back(new attribute("UserDefinedDataOrigin", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ReferencedTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), false)); - attributes.push_back(new entity::attribute("TimeSeriesReferences", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ReferencedTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), false)); + attributes.push_back(new attribute("TimeSeriesReferences", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentSelect_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTimeSeriesReferenceRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ApplicableDates", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcDateTimeSelect_type)), true)); - attributes.push_back(new entity::attribute("TimeSeriesScheduleType", new named_type(IFC2X3_IfcTimeSeriesScheduleTypeEnum_type), false)); - attributes.push_back(new entity::attribute("TimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ApplicableDates", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcDateTimeSelect_type)), true)); + attributes.push_back(new attribute("TimeSeriesScheduleType", new named_type(IFC2X3_IfcTimeSeriesScheduleTypeEnum_type), false)); + attributes.push_back(new attribute("TimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTimeSeriesSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcTimeSeriesValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcTopologicalRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTopologyRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTransformerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTransformerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTransformerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcTransportElementTypeEnum_type), true)); - attributes.push_back(new entity::attribute("CapacityByWeight", new named_type(IFC2X3_IfcMassMeasure_type), true)); - attributes.push_back(new entity::attribute("CapacityByNumber", new named_type(IFC2X3_IfcCountMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcTransportElementTypeEnum_type), true)); + attributes.push_back(new attribute("CapacityByWeight", new named_type(IFC2X3_IfcMassMeasure_type), true)); + attributes.push_back(new attribute("CapacityByNumber", new named_type(IFC2X3_IfcCountMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTransportElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTransportElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTransportElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTransportElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BottomXDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopXDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopXOffset", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BottomXDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopXDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopXOffset", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTrapeziumProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Trim1", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC2X3_IfcTrimmingSelect_type)), false)); - attributes.push_back(new entity::attribute("Trim2", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC2X3_IfcTrimmingSelect_type)), false)); - attributes.push_back(new entity::attribute("SenseAgreement", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("MasterRepresentation", new named_type(IFC2X3_IfcTrimmingPreference_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("Trim1", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC2X3_IfcTrimmingSelect_type)), false)); + attributes.push_back(new attribute("Trim2", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC2X3_IfcTrimmingSelect_type)), false)); + attributes.push_back(new attribute("SenseAgreement", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("MasterRepresentation", new named_type(IFC2X3_IfcTrimmingPreference_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTrimmedCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTubeBundleTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTubeBundleTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTubeBundleType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SecondRepeatFactor", new named_type(IFC2X3_IfcVector_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SecondRepeatFactor", new named_type(IFC2X3_IfcVector_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTwoDirectionRepeatFactor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ApplicableOccurrence", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("HasPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPropertySetDefinition_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ApplicableOccurrence", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("HasPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPropertySetDefinition_type)), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTypeObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RepresentationMaps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRepresentationMap_type)), true)); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RepresentationMaps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRepresentationMap_type)), true)); + attributes.push_back(new attribute("Tag", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTypeProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcUShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Units", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcUnit_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Units", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcUnit_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcUnitAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcUnitaryEquipmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcUnitaryEquipmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcUnitaryEquipmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcValveTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcValveTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcValveType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Magnitude", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); + attributes.push_back(new attribute("Magnitude", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVector_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcVertex_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TextureVertices", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcTextureVertex_type)), false)); - attributes.push_back(new entity::attribute("TexturePoints", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TextureVertices", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcTextureVertex_type)), false)); + attributes.push_back(new attribute("TexturePoints", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVertexBasedTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LoopVertex", new named_type(IFC2X3_IfcVertex_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LoopVertex", new named_type(IFC2X3_IfcVertex_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcVertexLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("VertexGeometry", new named_type(IFC2X3_IfcPoint_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("VertexGeometry", new named_type(IFC2X3_IfcPoint_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcVertexPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcVibrationIsolatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcVibrationIsolatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVibrationIsolatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVirtualElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("IntersectingAxes", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC2X3_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("OffsetDistances", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC2X3_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("IntersectingAxes", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC2X3_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("OffsetDistances", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC2X3_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVirtualGridIntersection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWall_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWallStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcWallTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcWallTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWallType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcWasteTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcWasteTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWasteTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("IsPotable", new simple_type(simple_type::boolean_type), true)); - attributes.push_back(new entity::attribute("Hardness", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); - attributes.push_back(new entity::attribute("AlkalinityConcentration", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); - attributes.push_back(new entity::attribute("AcidityConcentration", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); - attributes.push_back(new entity::attribute("ImpuritiesContent", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("PHLevel", new named_type(IFC2X3_IfcPHMeasure_type), true)); - attributes.push_back(new entity::attribute("DissolvedSolidsContent", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("IsPotable", new simple_type(simple_type::boolean_type), true)); + attributes.push_back(new attribute("Hardness", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); + attributes.push_back(new attribute("AlkalinityConcentration", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); + attributes.push_back(new attribute("AcidityConcentration", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); + attributes.push_back(new attribute("ImpuritiesContent", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("PHLevel", new named_type(IFC2X3_IfcPHMeasure_type), true)); + attributes.push_back(new attribute("DissolvedSolidsContent", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWaterProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWindow_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("LiningDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MullionThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FirstTransomOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SecondTransomOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("FirstMullionOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SecondMullionOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("LiningDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MullionThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FirstTransomOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("SecondTransomOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("FirstMullionOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("SecondMullionOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWindowLiningProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcWindowPanelOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC2X3_IfcWindowPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("FrameDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FrameThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcWindowPanelOperationEnum_type), false)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC2X3_IfcWindowPanelPositionEnum_type), false)); + attributes.push_back(new attribute("FrameDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FrameThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWindowPanelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC2X3_IfcWindowStyleConstructionEnum_type), false)); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcWindowStyleOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("Sizeable", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC2X3_IfcWindowStyleConstructionEnum_type), false)); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcWindowStyleOperationEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("Sizeable", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWindowStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(10); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("CreationDate", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("Creators", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPerson_type)), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Duration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("TotalFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("FinishTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("WorkControlType", new named_type(IFC2X3_IfcWorkControlTypeEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedControlType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(10); + attributes.push_back(new attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("CreationDate", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("Creators", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPerson_type)), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Duration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("TotalFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("StartTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("FinishTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("WorkControlType", new named_type(IFC2X3_IfcWorkControlTypeEnum_type), true)); + attributes.push_back(new attribute("UserDefinedControlType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWorkControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWorkPlan_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWorkSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcZShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcZone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsActingUpon", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToActor_type, IFC2X3_IfcRelAssignsToActor_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsActingUpon", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToActor_type, IFC2X3_IfcRelAssignsToActor_type->attributes()[0])); IFC2X3_IfcActor_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("OfPerson", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPerson_type, IFC2X3_IfcPerson_type->attributes()[7])); - attributes.push_back(new entity::inverse_attribute("OfOrganization", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganization_type, IFC2X3_IfcOrganization_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("OfPerson", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPerson_type, IFC2X3_IfcPerson_type->attributes()[7])); + attributes.push_back(new inverse_attribute("OfOrganization", inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganization_type, IFC2X3_IfcOrganization_type->attributes()[4])); IFC2X3_IfcAddress_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC2X3_IfcAnnotation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ValuesReferenced", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcReferencesValueDocument_type, IFC2X3_IfcReferencesValueDocument_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ValueOfComponents", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcAppliedValueRelationship_type, IFC2X3_IfcAppliedValueRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsComponentIn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcAppliedValueRelationship_type, IFC2X3_IfcAppliedValueRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ValuesReferenced", inverse_attribute::set_type, 0, -1, IFC2X3_IfcReferencesValueDocument_type, IFC2X3_IfcReferencesValueDocument_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ValueOfComponents", inverse_attribute::set_type, 0, -1, IFC2X3_IfcAppliedValueRelationship_type, IFC2X3_IfcAppliedValueRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsComponentIn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcAppliedValueRelationship_type, IFC2X3_IfcAppliedValueRelationship_type->attributes()[1])); IFC2X3_IfcAppliedValue_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("Actors", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalActorRelationship_type, IFC2X3_IfcApprovalActorRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsRelatedWith", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalRelationship_type, IFC2X3_IfcApprovalRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Relates", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalRelationship_type, IFC2X3_IfcApprovalRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("Actors", inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalActorRelationship_type, IFC2X3_IfcApprovalActorRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsRelatedWith", inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalRelationship_type, IFC2X3_IfcApprovalRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Relates", inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalRelationship_type, IFC2X3_IfcApprovalRelationship_type->attributes()[1])); IFC2X3_IfcApproval_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Contains", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcClassificationItem_type, IFC2X3_IfcClassificationItem_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Contains", inverse_attribute::set_type, 0, -1, IFC2X3_IfcClassificationItem_type, IFC2X3_IfcClassificationItem_type->attributes()[1])); IFC2X3_IfcClassification_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsClassifiedItemIn", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcClassificationItemRelationship_type, IFC2X3_IfcClassificationItemRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsClassifyingItemIn", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcClassificationItemRelationship_type, IFC2X3_IfcClassificationItemRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsClassifiedItemIn", inverse_attribute::set_type, 0, 1, IFC2X3_IfcClassificationItemRelationship_type, IFC2X3_IfcClassificationItemRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsClassifyingItemIn", inverse_attribute::set_type, 0, 1, IFC2X3_IfcClassificationItemRelationship_type, IFC2X3_IfcClassificationItemRelationship_type->attributes()[0])); IFC2X3_IfcClassificationItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("UsingCurves", entity::inverse_attribute::set_type, 1, -1, IFC2X3_IfcCompositeCurve_type, IFC2X3_IfcCompositeCurve_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("UsingCurves", inverse_attribute::set_type, 1, -1, IFC2X3_IfcCompositeCurve_type, IFC2X3_IfcCompositeCurve_type->attributes()[0])); IFC2X3_IfcCompositeCurveSegment_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::inverse_attribute("ClassifiedAs", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintClassificationRelationship_type, IFC2X3_IfcConstraintClassificationRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("RelatesConstraints", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintRelationship_type, IFC2X3_IfcConstraintRelationship_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("IsRelatedWith", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintRelationship_type, IFC2X3_IfcConstraintRelationship_type->attributes()[3])); - attributes.push_back(new entity::inverse_attribute("PropertiesForConstraint", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyConstraintRelationship_type, IFC2X3_IfcPropertyConstraintRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Aggregates", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintAggregationRelationship_type, IFC2X3_IfcConstraintAggregationRelationship_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("IsAggregatedIn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintAggregationRelationship_type, IFC2X3_IfcConstraintAggregationRelationship_type->attributes()[3])); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new inverse_attribute("ClassifiedAs", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintClassificationRelationship_type, IFC2X3_IfcConstraintClassificationRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("RelatesConstraints", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintRelationship_type, IFC2X3_IfcConstraintRelationship_type->attributes()[2])); + attributes.push_back(new inverse_attribute("IsRelatedWith", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintRelationship_type, IFC2X3_IfcConstraintRelationship_type->attributes()[3])); + attributes.push_back(new inverse_attribute("PropertiesForConstraint", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyConstraintRelationship_type, IFC2X3_IfcPropertyConstraintRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Aggregates", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintAggregationRelationship_type, IFC2X3_IfcConstraintAggregationRelationship_type->attributes()[2])); + attributes.push_back(new inverse_attribute("IsAggregatedIn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintAggregationRelationship_type, IFC2X3_IfcConstraintAggregationRelationship_type->attributes()[3])); IFC2X3_IfcConstraint_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Controls", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToControl_type, IFC2X3_IfcRelAssignsToControl_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Controls", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToControl_type, IFC2X3_IfcRelAssignsToControl_type->attributes()[0])); IFC2X3_IfcControl_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("CoversSpaces", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelCoversSpaces_type, IFC2X3_IfcRelCoversSpaces_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("Covers", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelCoversBldgElements_type, IFC2X3_IfcRelCoversBldgElements_type->attributes()[1])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("CoversSpaces", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelCoversSpaces_type, IFC2X3_IfcRelCoversSpaces_type->attributes()[1])); + attributes.push_back(new inverse_attribute("Covers", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelCoversBldgElements_type, IFC2X3_IfcRelCoversBldgElements_type->attributes()[1])); IFC2X3_IfcCovering_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AnnotatedBySymbols", entity::inverse_attribute::set_type, 0, 2, IFC2X3_IfcTerminatorSymbol_type, IFC2X3_IfcTerminatorSymbol_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AnnotatedBySymbols", inverse_attribute::set_type, 0, 2, IFC2X3_IfcTerminatorSymbol_type, IFC2X3_IfcTerminatorSymbol_type->attributes()[0])); IFC2X3_IfcDimensionCurve_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedToFlowElement", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFlowControlElements_type, IFC2X3_IfcRelFlowControlElements_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedToFlowElement", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFlowControlElements_type, IFC2X3_IfcRelFlowControlElements_type->attributes()[0])); IFC2X3_IfcDistributionControlElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasControlElements", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFlowControlElements_type, IFC2X3_IfcRelFlowControlElements_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasControlElements", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFlowControlElements_type, IFC2X3_IfcRelFlowControlElements_type->attributes()[1])); IFC2X3_IfcDistributionFlowElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsPointedTo", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcDocumentInformationRelationship_type, IFC2X3_IfcDocumentInformationRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsPointer", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcDocumentInformationRelationship_type, IFC2X3_IfcDocumentInformationRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsPointedTo", inverse_attribute::set_type, 0, -1, IFC2X3_IfcDocumentInformationRelationship_type, IFC2X3_IfcDocumentInformationRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsPointer", inverse_attribute::set_type, 0, 1, IFC2X3_IfcDocumentInformationRelationship_type, IFC2X3_IfcDocumentInformationRelationship_type->attributes()[0])); IFC2X3_IfcDocumentInformation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferenceToDocument", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcDocumentInformation_type, IFC2X3_IfcDocumentInformation_type->attributes()[3])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferenceToDocument", inverse_attribute::set_type, 0, 1, IFC2X3_IfcDocumentInformation_type, IFC2X3_IfcDocumentInformation_type->attributes()[3])); IFC2X3_IfcDocumentReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsRelatedFromCallout", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcDraughtingCalloutRelationship_type, IFC2X3_IfcDraughtingCalloutRelationship_type->attributes()[3])); - attributes.push_back(new entity::inverse_attribute("IsRelatedToCallout", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcDraughtingCalloutRelationship_type, IFC2X3_IfcDraughtingCalloutRelationship_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsRelatedFromCallout", inverse_attribute::set_type, 0, -1, IFC2X3_IfcDraughtingCalloutRelationship_type, IFC2X3_IfcDraughtingCalloutRelationship_type->attributes()[3])); + attributes.push_back(new inverse_attribute("IsRelatedToCallout", inverse_attribute::set_type, 0, -1, IFC2X3_IfcDraughtingCalloutRelationship_type, IFC2X3_IfcDraughtingCalloutRelationship_type->attributes()[2])); IFC2X3_IfcDraughtingCallout_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::inverse_attribute("HasStructuralMember", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralElement_type, IFC2X3_IfcRelConnectsStructuralElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("FillsVoids", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFillsElement_type, IFC2X3_IfcRelFillsElement_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedTo", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsElements_type, IFC2X3_IfcRelConnectsElements_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasCoverings", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelCoversBldgElements_type, IFC2X3_IfcRelCoversBldgElements_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasProjections", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelProjectsElement_type, IFC2X3_IfcRelProjectsElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ReferencedInStructures", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelReferencedInSpatialStructure_type, IFC2X3_IfcRelReferencedInSpatialStructure_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasPorts", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsPortToElement_type, IFC2X3_IfcRelConnectsPortToElement_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasOpenings", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelVoidsElement_type, IFC2X3_IfcRelVoidsElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsConnectionRealization", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsWithRealizingElements_type, IFC2X3_IfcRelConnectsWithRealizingElements_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ProvidesBoundaries", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSpaceBoundary_type, IFC2X3_IfcRelSpaceBoundary_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedFrom", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsElements_type, IFC2X3_IfcRelConnectsElements_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new inverse_attribute("HasStructuralMember", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralElement_type, IFC2X3_IfcRelConnectsStructuralElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("FillsVoids", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFillsElement_type, IFC2X3_IfcRelFillsElement_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedTo", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsElements_type, IFC2X3_IfcRelConnectsElements_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasCoverings", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelCoversBldgElements_type, IFC2X3_IfcRelCoversBldgElements_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasProjections", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelProjectsElement_type, IFC2X3_IfcRelProjectsElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ReferencedInStructures", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelReferencedInSpatialStructure_type, IFC2X3_IfcRelReferencedInSpatialStructure_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasPorts", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsPortToElement_type, IFC2X3_IfcRelConnectsPortToElement_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasOpenings", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelVoidsElement_type, IFC2X3_IfcRelVoidsElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsConnectionRealization", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsWithRealizingElements_type, IFC2X3_IfcRelConnectsWithRealizingElements_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ProvidesBoundaries", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSpaceBoundary_type, IFC2X3_IfcRelSpaceBoundary_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedFrom", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsElements_type, IFC2X3_IfcRelConnectsElements_type->attributes()[2])); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC2X3_IfcElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ProjectsElements", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelProjectsElement_type, IFC2X3_IfcRelProjectsElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ProjectsElements", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelProjectsElement_type, IFC2X3_IfcRelProjectsElement_type->attributes()[1])); IFC2X3_IfcFeatureElementAddition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("VoidsElements", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelVoidsElement_type, IFC2X3_IfcRelVoidsElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("VoidsElements", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelVoidsElement_type, IFC2X3_IfcRelVoidsElement_type->attributes()[1])); IFC2X3_IfcFeatureElementSubtraction_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasSubContexts", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcGeometricRepresentationSubContext_type, IFC2X3_IfcGeometricRepresentationSubContext_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasSubContexts", inverse_attribute::set_type, 0, -1, IFC2X3_IfcGeometricRepresentationSubContext_type, IFC2X3_IfcGeometricRepresentationSubContext_type->attributes()[0])); IFC2X3_IfcGeometricRepresentationContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC2X3_IfcGrid_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("PartOfW", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("PartOfV", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfU", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasIntersections", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcVirtualGridIntersection_type, IFC2X3_IfcVirtualGridIntersection_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("PartOfW", inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[2])); + attributes.push_back(new inverse_attribute("PartOfV", inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfU", inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasIntersections", inverse_attribute::set_type, 0, -1, IFC2X3_IfcVirtualGridIntersection_type, IFC2X3_IfcVirtualGridIntersection_type->attributes()[0])); IFC2X3_IfcGridAxis_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsGroupedBy", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelAssignsToGroup_type, IFC2X3_IfcRelAssignsToGroup_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsGroupedBy", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelAssignsToGroup_type, IFC2X3_IfcRelAssignsToGroup_type->attributes()[0])); IFC2X3_IfcGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferenceIntoLibrary", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcLibraryInformation_type, IFC2X3_IfcLibraryInformation_type->attributes()[4])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferenceIntoLibrary", inverse_attribute::set_type, 0, 1, IFC2X3_IfcLibraryInformation_type, IFC2X3_IfcLibraryInformation_type->attributes()[4])); IFC2X3_IfcLibraryReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasRepresentation", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcMaterialDefinitionRepresentation_type, IFC2X3_IfcMaterialDefinitionRepresentation_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ClassifiedAs", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcMaterialClassificationRelationship_type, IFC2X3_IfcMaterialClassificationRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasRepresentation", inverse_attribute::set_type, 0, 1, IFC2X3_IfcMaterialDefinitionRepresentation_type, IFC2X3_IfcMaterialDefinitionRepresentation_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ClassifiedAs", inverse_attribute::set_type, 0, 1, IFC2X3_IfcMaterialClassificationRelationship_type, IFC2X3_IfcMaterialClassificationRelationship_type->attributes()[1])); IFC2X3_IfcMaterial_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToMaterialLayerSet", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcMaterialLayerSet_type, IFC2X3_IfcMaterialLayerSet_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToMaterialLayerSet", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcMaterialLayerSet_type, IFC2X3_IfcMaterialLayerSet_type->attributes()[0])); IFC2X3_IfcMaterialLayer_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsDefinedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelDefines_type, IFC2X3_IfcRelDefines_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsDefinedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelDefines_type, IFC2X3_IfcRelDefines_type->attributes()[0])); IFC2X3_IfcObject_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("HasAssignments", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssigns_type, IFC2X3_IfcRelAssigns_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsDecomposedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelDecomposes_type, IFC2X3_IfcRelDecomposes_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Decomposes", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDecomposes_type, IFC2X3_IfcRelDecomposes_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasAssociations", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssociates_type, IFC2X3_IfcRelAssociates_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("HasAssignments", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssigns_type, IFC2X3_IfcRelAssigns_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsDecomposedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelDecomposes_type, IFC2X3_IfcRelDecomposes_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Decomposes", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDecomposes_type, IFC2X3_IfcRelDecomposes_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasAssociations", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssociates_type, IFC2X3_IfcRelAssociates_type->attributes()[0])); IFC2X3_IfcObjectDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("PlacesObject", entity::inverse_attribute::set_type, 1, 1, IFC2X3_IfcProduct_type, IFC2X3_IfcProduct_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ReferencedByPlacements", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcLocalPlacement_type, IFC2X3_IfcLocalPlacement_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("PlacesObject", inverse_attribute::set_type, 1, 1, IFC2X3_IfcProduct_type, IFC2X3_IfcProduct_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ReferencedByPlacements", inverse_attribute::set_type, 0, -1, IFC2X3_IfcLocalPlacement_type, IFC2X3_IfcLocalPlacement_type->attributes()[0])); IFC2X3_IfcObjectPlacement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasFillings", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelFillsElement_type, IFC2X3_IfcRelFillsElement_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasFillings", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelFillsElement_type, IFC2X3_IfcRelFillsElement_type->attributes()[0])); IFC2X3_IfcOpeningElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("IsRelatedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganizationRelationship_type, IFC2X3_IfcOrganizationRelationship_type->attributes()[3])); - attributes.push_back(new entity::inverse_attribute("Relates", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganizationRelationship_type, IFC2X3_IfcOrganizationRelationship_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("Engages", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPersonAndOrganization_type, IFC2X3_IfcPersonAndOrganization_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("IsRelatedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganizationRelationship_type, IFC2X3_IfcOrganizationRelationship_type->attributes()[3])); + attributes.push_back(new inverse_attribute("Relates", inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganizationRelationship_type, IFC2X3_IfcOrganizationRelationship_type->attributes()[2])); + attributes.push_back(new inverse_attribute("Engages", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPersonAndOrganization_type, IFC2X3_IfcPersonAndOrganization_type->attributes()[1])); IFC2X3_IfcOrganization_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("EngagedIn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPersonAndOrganization_type, IFC2X3_IfcPersonAndOrganization_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("EngagedIn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPersonAndOrganization_type, IFC2X3_IfcPersonAndOrganization_type->attributes()[0])); IFC2X3_IfcPerson_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("PartOfComplex", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcPhysicalComplexQuantity_type, IFC2X3_IfcPhysicalComplexQuantity_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("PartOfComplex", inverse_attribute::set_type, 0, 1, IFC2X3_IfcPhysicalComplexQuantity_type, IFC2X3_IfcPhysicalComplexQuantity_type->attributes()[0])); IFC2X3_IfcPhysicalQuantity_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ContainedIn", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelConnectsPortToElement_type, IFC2X3_IfcRelConnectsPortToElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ConnectedFrom", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelConnectsPorts_type, IFC2X3_IfcRelConnectsPorts_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedTo", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelConnectsPorts_type, IFC2X3_IfcRelConnectsPorts_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ContainedIn", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelConnectsPortToElement_type, IFC2X3_IfcRelConnectsPortToElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ConnectedFrom", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelConnectsPorts_type, IFC2X3_IfcRelConnectsPorts_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedTo", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelConnectsPorts_type, IFC2X3_IfcRelConnectsPorts_type->attributes()[0])); IFC2X3_IfcPort_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("OperatesOn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToProcess_type, IFC2X3_IfcRelAssignsToProcess_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsSuccessorFrom", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSequence_type, IFC2X3_IfcRelSequence_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsPredecessorTo", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSequence_type, IFC2X3_IfcRelSequence_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("OperatesOn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToProcess_type, IFC2X3_IfcRelAssignsToProcess_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsSuccessorFrom", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSequence_type, IFC2X3_IfcRelSequence_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsPredecessorTo", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSequence_type, IFC2X3_IfcRelSequence_type->attributes()[0])); IFC2X3_IfcProcess_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferencedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToProduct_type, IFC2X3_IfcRelAssignsToProduct_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferencedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToProduct_type, IFC2X3_IfcRelAssignsToProduct_type->attributes()[0])); IFC2X3_IfcProduct_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ShapeOfProduct", entity::inverse_attribute::set_type, 1, 1, IFC2X3_IfcProduct_type, IFC2X3_IfcProduct_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasShapeAspects", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcShapeAspect_type, IFC2X3_IfcShapeAspect_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ShapeOfProduct", inverse_attribute::set_type, 1, 1, IFC2X3_IfcProduct_type, IFC2X3_IfcProduct_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasShapeAspects", inverse_attribute::set_type, 0, -1, IFC2X3_IfcShapeAspect_type, IFC2X3_IfcShapeAspect_type->attributes()[4])); IFC2X3_IfcProductDefinitionShape_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("PropertyForDependance", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyDependencyRelationship_type, IFC2X3_IfcPropertyDependencyRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("PropertyDependsOn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyDependencyRelationship_type, IFC2X3_IfcPropertyDependencyRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfComplex", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcComplexProperty_type, IFC2X3_IfcComplexProperty_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("PropertyForDependance", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyDependencyRelationship_type, IFC2X3_IfcPropertyDependencyRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("PropertyDependsOn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyDependencyRelationship_type, IFC2X3_IfcPropertyDependencyRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfComplex", inverse_attribute::set_type, 0, 1, IFC2X3_IfcComplexProperty_type, IFC2X3_IfcComplexProperty_type->attributes()[1])); IFC2X3_IfcProperty_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasAssociations", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssociates_type, IFC2X3_IfcRelAssociates_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasAssociations", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssociates_type, IFC2X3_IfcRelAssociates_type->attributes()[0])); IFC2X3_IfcPropertyDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("PropertyDefinitionOf", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDefinesByProperties_type, IFC2X3_IfcRelDefinesByProperties_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("DefinesType", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcTypeObject_type, IFC2X3_IfcTypeObject_type->attributes()[1])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("PropertyDefinitionOf", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDefinesByProperties_type, IFC2X3_IfcRelDefinesByProperties_type->attributes()[0])); + attributes.push_back(new inverse_attribute("DefinesType", inverse_attribute::set_type, 0, 1, IFC2X3_IfcTypeObject_type, IFC2X3_IfcTypeObject_type->attributes()[1])); IFC2X3_IfcPropertySetDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("RepresentationMap", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRepresentationMap_type, IFC2X3_IfcRepresentationMap_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("LayerAssignments", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPresentationLayerAssignment_type, IFC2X3_IfcPresentationLayerAssignment_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("OfProductRepresentation", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcProductRepresentation_type, IFC2X3_IfcProductRepresentation_type->attributes()[2])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("RepresentationMap", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRepresentationMap_type, IFC2X3_IfcRepresentationMap_type->attributes()[1])); + attributes.push_back(new inverse_attribute("LayerAssignments", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPresentationLayerAssignment_type, IFC2X3_IfcPresentationLayerAssignment_type->attributes()[2])); + attributes.push_back(new inverse_attribute("OfProductRepresentation", inverse_attribute::set_type, 0, 1, IFC2X3_IfcProductRepresentation_type, IFC2X3_IfcProductRepresentation_type->attributes()[2])); IFC2X3_IfcRepresentation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("RepresentationsInContext", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRepresentation_type, IFC2X3_IfcRepresentation_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("RepresentationsInContext", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRepresentation_type, IFC2X3_IfcRepresentation_type->attributes()[0])); IFC2X3_IfcRepresentationContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("LayerAssignments", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPresentationLayerAssignment_type, IFC2X3_IfcPresentationLayerAssignment_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("StyledByItem", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcStyledItem_type, IFC2X3_IfcStyledItem_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("LayerAssignments", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPresentationLayerAssignment_type, IFC2X3_IfcPresentationLayerAssignment_type->attributes()[2])); + attributes.push_back(new inverse_attribute("StyledByItem", inverse_attribute::set_type, 0, 1, IFC2X3_IfcStyledItem_type, IFC2X3_IfcStyledItem_type->attributes()[0])); IFC2X3_IfcRepresentationItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("MapUsage", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcMappedItem_type, IFC2X3_IfcMappedItem_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("MapUsage", inverse_attribute::set_type, 0, -1, IFC2X3_IfcMappedItem_type, IFC2X3_IfcMappedItem_type->attributes()[0])); IFC2X3_IfcRepresentationMap_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResourceOf", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToResource_type, IFC2X3_IfcRelAssignsToResource_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResourceOf", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToResource_type, IFC2X3_IfcRelAssignsToResource_type->attributes()[0])); IFC2X3_IfcResource_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ScheduleTimeControlAssigned", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelAssignsTasks_type, IFC2X3_IfcRelAssignsTasks_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ScheduleTimeControlAssigned", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelAssignsTasks_type, IFC2X3_IfcRelAssignsTasks_type->attributes()[0])); IFC2X3_IfcScheduleTimeControl_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("OfShapeAspect", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcShapeAspect_type, IFC2X3_IfcShapeAspect_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("OfShapeAspect", inverse_attribute::set_type, 0, 1, IFC2X3_IfcShapeAspect_type, IFC2X3_IfcShapeAspect_type->attributes()[0])); IFC2X3_IfcShapeModel_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasCoverings", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelCoversSpaces_type, IFC2X3_IfcRelCoversSpaces_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("BoundedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSpaceBoundary_type, IFC2X3_IfcRelSpaceBoundary_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasCoverings", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelCoversSpaces_type, IFC2X3_IfcRelCoversSpaces_type->attributes()[0])); + attributes.push_back(new inverse_attribute("BoundedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSpaceBoundary_type, IFC2X3_IfcRelSpaceBoundary_type->attributes()[0])); IFC2X3_IfcSpace_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasInteractionReqsFrom", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelInteractionRequirements_type, IFC2X3_IfcRelInteractionRequirements_type->attributes()[3])); - attributes.push_back(new entity::inverse_attribute("HasInteractionReqsTo", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelInteractionRequirements_type, IFC2X3_IfcRelInteractionRequirements_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasInteractionReqsFrom", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelInteractionRequirements_type, IFC2X3_IfcRelInteractionRequirements_type->attributes()[3])); + attributes.push_back(new inverse_attribute("HasInteractionReqsTo", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelInteractionRequirements_type, IFC2X3_IfcRelInteractionRequirements_type->attributes()[4])); IFC2X3_IfcSpaceProgram_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ReferencesElements", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelReferencedInSpatialStructure_type, IFC2X3_IfcRelReferencedInSpatialStructure_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ServicedBySystems", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelServicesBuildings_type, IFC2X3_IfcRelServicesBuildings_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ContainsElements", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ReferencesElements", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelReferencedInSpatialStructure_type, IFC2X3_IfcRelReferencedInSpatialStructure_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ServicedBySystems", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelServicesBuildings_type, IFC2X3_IfcRelServicesBuildings_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ContainsElements", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[1])); IFC2X3_IfcSpatialStructureElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedToStructuralItem", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelConnectsStructuralActivity_type, IFC2X3_IfcRelConnectsStructuralActivity_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedToStructuralItem", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelConnectsStructuralActivity_type, IFC2X3_IfcRelConnectsStructuralActivity_type->attributes()[1])); IFC2X3_IfcStructuralActivity_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ConnectsStructuralMembers", entity::inverse_attribute::set_type, 1, -1, IFC2X3_IfcRelConnectsStructuralMember_type, IFC2X3_IfcRelConnectsStructuralMember_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ConnectsStructuralMembers", inverse_attribute::set_type, 1, -1, IFC2X3_IfcRelConnectsStructuralMember_type, IFC2X3_IfcRelConnectsStructuralMember_type->attributes()[1])); IFC2X3_IfcStructuralConnection_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedStructuralActivity", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralActivity_type, IFC2X3_IfcRelConnectsStructuralActivity_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedStructuralActivity", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralActivity_type, IFC2X3_IfcRelConnectsStructuralActivity_type->attributes()[0])); IFC2X3_IfcStructuralItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("SourceOfResultGroup", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcStructuralResultGroup_type, IFC2X3_IfcStructuralResultGroup_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("LoadGroupFor", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcStructuralAnalysisModel_type, IFC2X3_IfcStructuralAnalysisModel_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("SourceOfResultGroup", inverse_attribute::set_type, 0, 1, IFC2X3_IfcStructuralResultGroup_type, IFC2X3_IfcStructuralResultGroup_type->attributes()[1])); + attributes.push_back(new inverse_attribute("LoadGroupFor", inverse_attribute::set_type, 0, -1, IFC2X3_IfcStructuralAnalysisModel_type, IFC2X3_IfcStructuralAnalysisModel_type->attributes()[2])); IFC2X3_IfcStructuralLoadGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ReferencesElement", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralElement_type, IFC2X3_IfcRelConnectsStructuralElement_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralMember_type, IFC2X3_IfcRelConnectsStructuralMember_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ReferencesElement", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralElement_type, IFC2X3_IfcRelConnectsStructuralElement_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralMember_type, IFC2X3_IfcRelConnectsStructuralMember_type->attributes()[0])); IFC2X3_IfcStructuralMember_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Causes", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcStructuralAction_type, IFC2X3_IfcStructuralAction_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Causes", inverse_attribute::set_type, 0, -1, IFC2X3_IfcStructuralAction_type, IFC2X3_IfcStructuralAction_type->attributes()[1])); IFC2X3_IfcStructuralReaction_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResultGroupFor", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcStructuralAnalysisModel_type, IFC2X3_IfcStructuralAnalysisModel_type->attributes()[3])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResultGroupFor", inverse_attribute::set_type, 0, 1, IFC2X3_IfcStructuralAnalysisModel_type, IFC2X3_IfcStructuralAnalysisModel_type->attributes()[3])); IFC2X3_IfcStructuralResultGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ServicesBuildings", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelServicesBuildings_type, IFC2X3_IfcRelServicesBuildings_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ServicesBuildings", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelServicesBuildings_type, IFC2X3_IfcRelServicesBuildings_type->attributes()[0])); IFC2X3_IfcSystem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("OfTable", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcTable_type, IFC2X3_IfcTable_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("OfTable", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcTable_type, IFC2X3_IfcTable_type->attributes()[1])); IFC2X3_IfcTableRow_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AnnotatedSurface", entity::inverse_attribute::set_type, 1, 1, IFC2X3_IfcAnnotationSurface_type, IFC2X3_IfcAnnotationSurface_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AnnotatedSurface", inverse_attribute::set_type, 1, 1, IFC2X3_IfcAnnotationSurface_type, IFC2X3_IfcAnnotationSurface_type->attributes()[1])); IFC2X3_IfcTextureCoordinate_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("DocumentedBy", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcTimeSeriesReferenceRelationship_type, IFC2X3_IfcTimeSeriesReferenceRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("DocumentedBy", inverse_attribute::set_type, 0, 1, IFC2X3_IfcTimeSeriesReferenceRelationship_type, IFC2X3_IfcTimeSeriesReferenceRelationship_type->attributes()[0])); IFC2X3_IfcTimeSeries_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ObjectTypeOf", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDefinesByType_type, IFC2X3_IfcRelDefinesByType_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ObjectTypeOf", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDefinesByType_type, IFC2X3_IfcRelDefinesByType_type->attributes()[0])); IFC2X3_IfcTypeObject_type->set_inverse_attributes(attributes); } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_Ifc2DCompositeCurve_type); + IFC2X3_IfcCompositeCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(15); + defs.push_back(IFC2X3_IfcActionRequest_type);defs.push_back(IFC2X3_IfcConditionCriterion_type);defs.push_back(IFC2X3_IfcCostItem_type);defs.push_back(IFC2X3_IfcCostSchedule_type);defs.push_back(IFC2X3_IfcEquipmentStandard_type);defs.push_back(IFC2X3_IfcFurnitureStandard_type);defs.push_back(IFC2X3_IfcPerformanceHistory_type);defs.push_back(IFC2X3_IfcPermit_type);defs.push_back(IFC2X3_IfcProjectOrder_type);defs.push_back(IFC2X3_IfcProjectOrderRecord_type);defs.push_back(IFC2X3_IfcScheduleTimeControl_type);defs.push_back(IFC2X3_IfcServiceLife_type);defs.push_back(IFC2X3_IfcSpaceProgram_type);defs.push_back(IFC2X3_IfcTimeSeriesSchedule_type);defs.push_back(IFC2X3_IfcWorkControl_type); + IFC2X3_IfcControl_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcActor_type);defs.push_back(IFC2X3_IfcControl_type);defs.push_back(IFC2X3_IfcGroup_type);defs.push_back(IFC2X3_IfcProcess_type);defs.push_back(IFC2X3_IfcProduct_type);defs.push_back(IFC2X3_IfcProject_type);defs.push_back(IFC2X3_IfcResource_type); + IFC2X3_IfcObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcActuatorType_type);defs.push_back(IFC2X3_IfcAlarmType_type);defs.push_back(IFC2X3_IfcControllerType_type);defs.push_back(IFC2X3_IfcFlowInstrumentType_type);defs.push_back(IFC2X3_IfcSensorType_type); + IFC2X3_IfcDistributionControlElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcAirTerminalBoxType_type);defs.push_back(IFC2X3_IfcDamperType_type);defs.push_back(IFC2X3_IfcElectricTimeControlType_type);defs.push_back(IFC2X3_IfcFlowMeterType_type);defs.push_back(IFC2X3_IfcProtectiveDeviceType_type);defs.push_back(IFC2X3_IfcSwitchingDeviceType_type);defs.push_back(IFC2X3_IfcValveType_type); + IFC2X3_IfcFlowControllerType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(11); + defs.push_back(IFC2X3_IfcAirTerminalType_type);defs.push_back(IFC2X3_IfcElectricApplianceType_type);defs.push_back(IFC2X3_IfcElectricHeaterType_type);defs.push_back(IFC2X3_IfcFireSuppressionTerminalType_type);defs.push_back(IFC2X3_IfcGasTerminalType_type);defs.push_back(IFC2X3_IfcLampType_type);defs.push_back(IFC2X3_IfcLightFixtureType_type);defs.push_back(IFC2X3_IfcOutletType_type);defs.push_back(IFC2X3_IfcSanitaryTerminalType_type);defs.push_back(IFC2X3_IfcStackTerminalType_type);defs.push_back(IFC2X3_IfcWasteTerminalType_type); + IFC2X3_IfcFlowTerminalType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(18); + defs.push_back(IFC2X3_IfcAirToAirHeatRecoveryType_type);defs.push_back(IFC2X3_IfcBoilerType_type);defs.push_back(IFC2X3_IfcChillerType_type);defs.push_back(IFC2X3_IfcCoilType_type);defs.push_back(IFC2X3_IfcCondenserType_type);defs.push_back(IFC2X3_IfcCooledBeamType_type);defs.push_back(IFC2X3_IfcCoolingTowerType_type);defs.push_back(IFC2X3_IfcElectricGeneratorType_type);defs.push_back(IFC2X3_IfcElectricMotorType_type);defs.push_back(IFC2X3_IfcEvaporativeCoolerType_type);defs.push_back(IFC2X3_IfcEvaporatorType_type);defs.push_back(IFC2X3_IfcHeatExchangerType_type);defs.push_back(IFC2X3_IfcHumidifierType_type);defs.push_back(IFC2X3_IfcMotorConnectionType_type);defs.push_back(IFC2X3_IfcSpaceHeaterType_type);defs.push_back(IFC2X3_IfcTransformerType_type);defs.push_back(IFC2X3_IfcTubeBundleType_type);defs.push_back(IFC2X3_IfcUnitaryEquipmentType_type); + IFC2X3_IfcEnergyConversionDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcAngularDimension_type);defs.push_back(IFC2X3_IfcDiameterDimension_type);defs.push_back(IFC2X3_IfcLinearDimension_type);defs.push_back(IFC2X3_IfcRadiusDimension_type); + IFC2X3_IfcDimensionCurveDirectedCallout_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC2X3_IfcAnnotation_type);defs.push_back(IFC2X3_IfcElement_type);defs.push_back(IFC2X3_IfcGrid_type);defs.push_back(IFC2X3_IfcPort_type);defs.push_back(IFC2X3_IfcProxy_type);defs.push_back(IFC2X3_IfcSpatialStructureElement_type);defs.push_back(IFC2X3_IfcStructuralActivity_type);defs.push_back(IFC2X3_IfcStructuralItem_type); + IFC2X3_IfcProduct_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcAnnotationCurveOccurrence_type);defs.push_back(IFC2X3_IfcAnnotationFillAreaOccurrence_type);defs.push_back(IFC2X3_IfcAnnotationSurfaceOccurrence_type);defs.push_back(IFC2X3_IfcAnnotationSymbolOccurrence_type);defs.push_back(IFC2X3_IfcAnnotationTextOccurrence_type); + IFC2X3_IfcAnnotationOccurrence_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(28); + defs.push_back(IFC2X3_IfcAnnotationFillArea_type);defs.push_back(IFC2X3_IfcAnnotationSurface_type);defs.push_back(IFC2X3_IfcBooleanResult_type);defs.push_back(IFC2X3_IfcBoundingBox_type);defs.push_back(IFC2X3_IfcCartesianTransformationOperator_type);defs.push_back(IFC2X3_IfcCompositeCurveSegment_type);defs.push_back(IFC2X3_IfcCsgPrimitive3D_type);defs.push_back(IFC2X3_IfcCurve_type);defs.push_back(IFC2X3_IfcDefinedSymbol_type);defs.push_back(IFC2X3_IfcDirection_type);defs.push_back(IFC2X3_IfcDraughtingCallout_type);defs.push_back(IFC2X3_IfcFaceBasedSurfaceModel_type);defs.push_back(IFC2X3_IfcFillAreaStyleHatching_type);defs.push_back(IFC2X3_IfcFillAreaStyleTileSymbolWithStyle_type);defs.push_back(IFC2X3_IfcFillAreaStyleTiles_type);defs.push_back(IFC2X3_IfcGeometricSet_type);defs.push_back(IFC2X3_IfcHalfSpaceSolid_type);defs.push_back(IFC2X3_IfcLightSource_type);defs.push_back(IFC2X3_IfcOneDirectionRepeatFactor_type);defs.push_back(IFC2X3_IfcPlacement_type);defs.push_back(IFC2X3_IfcPlanarExtent_type);defs.push_back(IFC2X3_IfcPoint_type);defs.push_back(IFC2X3_IfcSectionedSpine_type);defs.push_back(IFC2X3_IfcShellBasedSurfaceModel_type);defs.push_back(IFC2X3_IfcSolidModel_type);defs.push_back(IFC2X3_IfcSurface_type);defs.push_back(IFC2X3_IfcTextLiteral_type);defs.push_back(IFC2X3_IfcVector_type); + IFC2X3_IfcGeometricRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcAnnotationOccurrence_type); + IFC2X3_IfcStyledItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcArbitraryClosedProfileDef_type);defs.push_back(IFC2X3_IfcArbitraryOpenProfileDef_type);defs.push_back(IFC2X3_IfcCompositeProfileDef_type);defs.push_back(IFC2X3_IfcDerivedProfileDef_type);defs.push_back(IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcArbitraryProfileDefWithVoids_type); + IFC2X3_IfcArbitraryClosedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcAsset_type);defs.push_back(IFC2X3_IfcCondition_type);defs.push_back(IFC2X3_IfcInventory_type);defs.push_back(IFC2X3_IfcStructuralLoadGroup_type);defs.push_back(IFC2X3_IfcStructuralResultGroup_type);defs.push_back(IFC2X3_IfcSystem_type);defs.push_back(IFC2X3_IfcZone_type); + IFC2X3_IfcGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcAsymmetricIShapeProfileDef_type); + IFC2X3_IfcIShapeProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcAxis1Placement_type);defs.push_back(IFC2X3_IfcAxis2Placement2D_type);defs.push_back(IFC2X3_IfcAxis2Placement3D_type); + IFC2X3_IfcPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcBSplineCurve_type);defs.push_back(IFC2X3_IfcCompositeCurve_type);defs.push_back(IFC2X3_IfcPolyline_type);defs.push_back(IFC2X3_IfcTrimmedCurve_type); + IFC2X3_IfcBoundedCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(20); + defs.push_back(IFC2X3_IfcBeam_type);defs.push_back(IFC2X3_IfcBuildingElementComponent_type);defs.push_back(IFC2X3_IfcBuildingElementProxy_type);defs.push_back(IFC2X3_IfcColumn_type);defs.push_back(IFC2X3_IfcCovering_type);defs.push_back(IFC2X3_IfcCurtainWall_type);defs.push_back(IFC2X3_IfcDoor_type);defs.push_back(IFC2X3_IfcFooting_type);defs.push_back(IFC2X3_IfcMember_type);defs.push_back(IFC2X3_IfcPile_type);defs.push_back(IFC2X3_IfcPlate_type);defs.push_back(IFC2X3_IfcRailing_type);defs.push_back(IFC2X3_IfcRamp_type);defs.push_back(IFC2X3_IfcRampFlight_type);defs.push_back(IFC2X3_IfcRoof_type);defs.push_back(IFC2X3_IfcSlab_type);defs.push_back(IFC2X3_IfcStair_type);defs.push_back(IFC2X3_IfcStairFlight_type);defs.push_back(IFC2X3_IfcWall_type);defs.push_back(IFC2X3_IfcWindow_type); + IFC2X3_IfcBuildingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(12); + defs.push_back(IFC2X3_IfcBeamType_type);defs.push_back(IFC2X3_IfcBuildingElementProxyType_type);defs.push_back(IFC2X3_IfcColumnType_type);defs.push_back(IFC2X3_IfcCoveringType_type);defs.push_back(IFC2X3_IfcCurtainWallType_type);defs.push_back(IFC2X3_IfcMemberType_type);defs.push_back(IFC2X3_IfcPlateType_type);defs.push_back(IFC2X3_IfcRailingType_type);defs.push_back(IFC2X3_IfcRampFlightType_type);defs.push_back(IFC2X3_IfcSlabType_type);defs.push_back(IFC2X3_IfcStairFlightType_type);defs.push_back(IFC2X3_IfcWallType_type); + IFC2X3_IfcBuildingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcBezierCurve_type); + IFC2X3_IfcBSplineCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcBlobTexture_type);defs.push_back(IFC2X3_IfcImageTexture_type);defs.push_back(IFC2X3_IfcPixelTexture_type); + IFC2X3_IfcSurfaceTexture_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcBlock_type);defs.push_back(IFC2X3_IfcRectangularPyramid_type);defs.push_back(IFC2X3_IfcRightCircularCone_type);defs.push_back(IFC2X3_IfcRightCircularCylinder_type);defs.push_back(IFC2X3_IfcSphere_type); + IFC2X3_IfcCsgPrimitive3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcBooleanClippingResult_type); + IFC2X3_IfcBooleanResult_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcBoundaryEdgeCondition_type);defs.push_back(IFC2X3_IfcBoundaryFaceCondition_type);defs.push_back(IFC2X3_IfcBoundaryNodeCondition_type); + IFC2X3_IfcBoundaryCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcBoundaryNodeConditionWarping_type); + IFC2X3_IfcBoundaryNodeCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcBoundedCurve_type);defs.push_back(IFC2X3_IfcConic_type);defs.push_back(IFC2X3_IfcLine_type);defs.push_back(IFC2X3_IfcOffsetCurve2D_type);defs.push_back(IFC2X3_IfcOffsetCurve3D_type); + IFC2X3_IfcCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcBoundedSurface_type);defs.push_back(IFC2X3_IfcElementarySurface_type);defs.push_back(IFC2X3_IfcSweptSurface_type); + IFC2X3_IfcSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcBoxedHalfSpace_type);defs.push_back(IFC2X3_IfcPolygonalBoundedHalfSpace_type); + IFC2X3_IfcHalfSpaceSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcBuilding_type);defs.push_back(IFC2X3_IfcBuildingStorey_type);defs.push_back(IFC2X3_IfcSite_type);defs.push_back(IFC2X3_IfcSpace_type); + IFC2X3_IfcSpatialStructureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(10); + defs.push_back(IFC2X3_IfcBuildingElement_type);defs.push_back(IFC2X3_IfcDistributionElement_type);defs.push_back(IFC2X3_IfcElectricalElement_type);defs.push_back(IFC2X3_IfcElementAssembly_type);defs.push_back(IFC2X3_IfcElementComponent_type);defs.push_back(IFC2X3_IfcEquipmentElement_type);defs.push_back(IFC2X3_IfcFeatureElement_type);defs.push_back(IFC2X3_IfcFurnishingElement_type);defs.push_back(IFC2X3_IfcTransportElement_type);defs.push_back(IFC2X3_IfcVirtualElement_type); + IFC2X3_IfcElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcBuildingElementPart_type);defs.push_back(IFC2X3_IfcReinforcingElement_type); + IFC2X3_IfcBuildingElementComponent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcBuildingElementType_type);defs.push_back(IFC2X3_IfcDistributionElementType_type);defs.push_back(IFC2X3_IfcElementComponentType_type);defs.push_back(IFC2X3_IfcFurnishingElementType_type);defs.push_back(IFC2X3_IfcSpatialStructureElementType_type);defs.push_back(IFC2X3_IfcTransportElementType_type); + IFC2X3_IfcElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(12); + defs.push_back(IFC2X3_IfcCShapeProfileDef_type);defs.push_back(IFC2X3_IfcCircleProfileDef_type);defs.push_back(IFC2X3_IfcCraneRailAShapeProfileDef_type);defs.push_back(IFC2X3_IfcCraneRailFShapeProfileDef_type);defs.push_back(IFC2X3_IfcEllipseProfileDef_type);defs.push_back(IFC2X3_IfcIShapeProfileDef_type);defs.push_back(IFC2X3_IfcLShapeProfileDef_type);defs.push_back(IFC2X3_IfcRectangleProfileDef_type);defs.push_back(IFC2X3_IfcTShapeProfileDef_type);defs.push_back(IFC2X3_IfcTrapeziumProfileDef_type);defs.push_back(IFC2X3_IfcUShapeProfileDef_type);defs.push_back(IFC2X3_IfcZShapeProfileDef_type); + IFC2X3_IfcParameterizedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcCableCarrierFittingType_type);defs.push_back(IFC2X3_IfcDuctFittingType_type);defs.push_back(IFC2X3_IfcJunctionBoxType_type);defs.push_back(IFC2X3_IfcPipeFittingType_type); + IFC2X3_IfcFlowFittingType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcCableCarrierSegmentType_type);defs.push_back(IFC2X3_IfcCableSegmentType_type);defs.push_back(IFC2X3_IfcDuctSegmentType_type);defs.push_back(IFC2X3_IfcPipeSegmentType_type); + IFC2X3_IfcFlowSegmentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcCartesianPoint_type);defs.push_back(IFC2X3_IfcPointOnCurve_type);defs.push_back(IFC2X3_IfcPointOnSurface_type); + IFC2X3_IfcPoint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcCartesianTransformationOperator2D_type);defs.push_back(IFC2X3_IfcCartesianTransformationOperator3D_type); + IFC2X3_IfcCartesianTransformationOperator_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcCartesianTransformationOperator2DnonUniform_type); + IFC2X3_IfcCartesianTransformationOperator2D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcCartesianTransformationOperator3DnonUniform_type); + IFC2X3_IfcCartesianTransformationOperator3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcCenterLineProfileDef_type); + IFC2X3_IfcArbitraryOpenProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcChamferEdgeFeature_type);defs.push_back(IFC2X3_IfcRoundedEdgeFeature_type); + IFC2X3_IfcEdgeFeature_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcCircle_type);defs.push_back(IFC2X3_IfcEllipse_type); + IFC2X3_IfcConic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcCircleHollowProfileDef_type); + IFC2X3_IfcCircleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcClassificationReference_type);defs.push_back(IFC2X3_IfcDocumentReference_type);defs.push_back(IFC2X3_IfcExternallyDefinedHatchStyle_type);defs.push_back(IFC2X3_IfcExternallyDefinedSurfaceStyle_type);defs.push_back(IFC2X3_IfcExternallyDefinedSymbol_type);defs.push_back(IFC2X3_IfcExternallyDefinedTextFont_type);defs.push_back(IFC2X3_IfcLibraryReference_type); + IFC2X3_IfcExternalReference_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcClosedShell_type);defs.push_back(IFC2X3_IfcOpenShell_type); + IFC2X3_IfcConnectedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcColourRgb_type); + IFC2X3_IfcColourSpecification_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcComplexProperty_type);defs.push_back(IFC2X3_IfcSimpleProperty_type); + IFC2X3_IfcProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcCompressorType_type);defs.push_back(IFC2X3_IfcFanType_type);defs.push_back(IFC2X3_IfcPumpType_type); + IFC2X3_IfcFlowMovingDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcConnectedFaceSet_type);defs.push_back(IFC2X3_IfcEdge_type);defs.push_back(IFC2X3_IfcFace_type);defs.push_back(IFC2X3_IfcFaceBound_type);defs.push_back(IFC2X3_IfcLoop_type);defs.push_back(IFC2X3_IfcPath_type);defs.push_back(IFC2X3_IfcVertex_type); + IFC2X3_IfcTopologicalRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcConnectionCurveGeometry_type);defs.push_back(IFC2X3_IfcConnectionPointGeometry_type);defs.push_back(IFC2X3_IfcConnectionPortGeometry_type);defs.push_back(IFC2X3_IfcConnectionSurfaceGeometry_type); + IFC2X3_IfcConnectionGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcConnectionPointEccentricity_type); + IFC2X3_IfcConnectionPointGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcConstructionEquipmentResource_type);defs.push_back(IFC2X3_IfcConstructionMaterialResource_type);defs.push_back(IFC2X3_IfcConstructionProductResource_type);defs.push_back(IFC2X3_IfcCrewResource_type);defs.push_back(IFC2X3_IfcLaborResource_type);defs.push_back(IFC2X3_IfcSubContractResource_type); + IFC2X3_IfcConstructionResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcConstructionResource_type); + IFC2X3_IfcResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcContextDependentUnit_type);defs.push_back(IFC2X3_IfcConversionBasedUnit_type);defs.push_back(IFC2X3_IfcSIUnit_type); + IFC2X3_IfcNamedUnit_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcCostValue_type);defs.push_back(IFC2X3_IfcEnvironmentalImpactValue_type); + IFC2X3_IfcAppliedValue_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcCsgSolid_type);defs.push_back(IFC2X3_IfcManifoldSolidBrep_type);defs.push_back(IFC2X3_IfcSweptAreaSolid_type);defs.push_back(IFC2X3_IfcSweptDiskSolid_type); + IFC2X3_IfcSolidModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcCurveBoundedPlane_type);defs.push_back(IFC2X3_IfcRectangularTrimmedSurface_type); + IFC2X3_IfcBoundedSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcCurveStyle_type);defs.push_back(IFC2X3_IfcFillAreaStyle_type);defs.push_back(IFC2X3_IfcSurfaceStyle_type);defs.push_back(IFC2X3_IfcSymbolStyle_type);defs.push_back(IFC2X3_IfcTextStyle_type); + IFC2X3_IfcPresentationStyle_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDimensionCalloutRelationship_type);defs.push_back(IFC2X3_IfcDimensionPair_type); + IFC2X3_IfcDraughtingCalloutRelationship_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDimensionCurve_type);defs.push_back(IFC2X3_IfcProjectionCurve_type); + IFC2X3_IfcAnnotationCurveOccurrence_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDimensionCurveDirectedCallout_type);defs.push_back(IFC2X3_IfcStructuredDimensionCallout_type); + IFC2X3_IfcDraughtingCallout_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcDimensionCurveTerminator_type); + IFC2X3_IfcTerminatorSymbol_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDiscreteAccessory_type);defs.push_back(IFC2X3_IfcFastener_type); + IFC2X3_IfcElementComponent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDiscreteAccessoryType_type);defs.push_back(IFC2X3_IfcFastenerType_type); + IFC2X3_IfcElementComponentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC2X3_IfcDistributionChamberElement_type);defs.push_back(IFC2X3_IfcEnergyConversionDevice_type);defs.push_back(IFC2X3_IfcFlowController_type);defs.push_back(IFC2X3_IfcFlowFitting_type);defs.push_back(IFC2X3_IfcFlowMovingDevice_type);defs.push_back(IFC2X3_IfcFlowSegment_type);defs.push_back(IFC2X3_IfcFlowStorageDevice_type);defs.push_back(IFC2X3_IfcFlowTerminal_type);defs.push_back(IFC2X3_IfcFlowTreatmentDevice_type); + IFC2X3_IfcDistributionFlowElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC2X3_IfcDistributionChamberElementType_type);defs.push_back(IFC2X3_IfcEnergyConversionDeviceType_type);defs.push_back(IFC2X3_IfcFlowControllerType_type);defs.push_back(IFC2X3_IfcFlowFittingType_type);defs.push_back(IFC2X3_IfcFlowMovingDeviceType_type);defs.push_back(IFC2X3_IfcFlowSegmentType_type);defs.push_back(IFC2X3_IfcFlowStorageDeviceType_type);defs.push_back(IFC2X3_IfcFlowTerminalType_type);defs.push_back(IFC2X3_IfcFlowTreatmentDeviceType_type); + IFC2X3_IfcDistributionFlowElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDistributionControlElement_type);defs.push_back(IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcDistributionElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDistributionControlElementType_type);defs.push_back(IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcDistributionElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcDistributionPort_type); + IFC2X3_IfcPort_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(14); + defs.push_back(IFC2X3_IfcDoorLiningProperties_type);defs.push_back(IFC2X3_IfcDoorPanelProperties_type);defs.push_back(IFC2X3_IfcElementQuantity_type);defs.push_back(IFC2X3_IfcEnergyProperties_type);defs.push_back(IFC2X3_IfcFluidFlowProperties_type);defs.push_back(IFC2X3_IfcPermeableCoveringProperties_type);defs.push_back(IFC2X3_IfcPropertySet_type);defs.push_back(IFC2X3_IfcReinforcementDefinitionProperties_type);defs.push_back(IFC2X3_IfcServiceLifeFactor_type);defs.push_back(IFC2X3_IfcSoundProperties_type);defs.push_back(IFC2X3_IfcSoundValue_type);defs.push_back(IFC2X3_IfcSpaceThermalLoadProperties_type);defs.push_back(IFC2X3_IfcWindowLiningProperties_type);defs.push_back(IFC2X3_IfcWindowPanelProperties_type); + IFC2X3_IfcPropertySetDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcDoorStyle_type);defs.push_back(IFC2X3_IfcElementType_type);defs.push_back(IFC2X3_IfcWindowStyle_type); + IFC2X3_IfcTypeProduct_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcDraughtingPreDefinedColour_type); + IFC2X3_IfcPreDefinedColour_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcDraughtingPreDefinedCurveFont_type); + IFC2X3_IfcPreDefinedCurveFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDraughtingPreDefinedTextFont_type);defs.push_back(IFC2X3_IfcTextStyleFontModel_type); + IFC2X3_IfcPreDefinedTextFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDuctSilencerType_type);defs.push_back(IFC2X3_IfcFilterType_type); + IFC2X3_IfcFlowTreatmentDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcEdgeCurve_type);defs.push_back(IFC2X3_IfcOrientedEdge_type);defs.push_back(IFC2X3_IfcSubedge_type); + IFC2X3_IfcEdge_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcEdgeFeature_type);defs.push_back(IFC2X3_IfcOpeningElement_type); + IFC2X3_IfcFeatureElementSubtraction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcEdgeLoop_type);defs.push_back(IFC2X3_IfcPolyLoop_type);defs.push_back(IFC2X3_IfcVertexLoop_type); + IFC2X3_IfcLoop_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcElectricDistributionPoint_type); + IFC2X3_IfcFlowController_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcElectricFlowStorageDeviceType_type);defs.push_back(IFC2X3_IfcTankType_type); + IFC2X3_IfcFlowStorageDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcElectricalBaseProperties_type); + IFC2X3_IfcEnergyProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcElectricalCircuit_type);defs.push_back(IFC2X3_IfcStructuralAnalysisModel_type); + IFC2X3_IfcSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC2X3_IfcExtendedMaterialProperties_type);defs.push_back(IFC2X3_IfcFuelProperties_type);defs.push_back(IFC2X3_IfcGeneralMaterialProperties_type);defs.push_back(IFC2X3_IfcHygroscopicMaterialProperties_type);defs.push_back(IFC2X3_IfcMechanicalMaterialProperties_type);defs.push_back(IFC2X3_IfcOpticalMaterialProperties_type);defs.push_back(IFC2X3_IfcProductsOfCombustionProperties_type);defs.push_back(IFC2X3_IfcThermalMaterialProperties_type);defs.push_back(IFC2X3_IfcWaterProperties_type); + IFC2X3_IfcMaterialProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcExtrudedAreaSolid_type);defs.push_back(IFC2X3_IfcRevolvedAreaSolid_type);defs.push_back(IFC2X3_IfcSurfaceCurveSweptAreaSolid_type); + IFC2X3_IfcSweptAreaSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcFaceOuterBound_type); + IFC2X3_IfcFaceBound_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcFaceSurface_type); + IFC2X3_IfcFace_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcFacetedBrep_type);defs.push_back(IFC2X3_IfcFacetedBrepWithVoids_type); + IFC2X3_IfcManifoldSolidBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcFailureConnectionCondition_type);defs.push_back(IFC2X3_IfcSlippageConnectionCondition_type); + IFC2X3_IfcStructuralConnectionCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcFeatureElementAddition_type);defs.push_back(IFC2X3_IfcFeatureElementSubtraction_type); + IFC2X3_IfcFeatureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcFurnitureType_type);defs.push_back(IFC2X3_IfcSystemFurnitureElementType_type); + IFC2X3_IfcFurnishingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcGeneralProfileProperties_type);defs.push_back(IFC2X3_IfcRibPlateProfileProperties_type); + IFC2X3_IfcProfileProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcGeometricCurveSet_type); + IFC2X3_IfcGeometricSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcGeometricRepresentationContext_type); + IFC2X3_IfcRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcGeometricRepresentationItem_type);defs.push_back(IFC2X3_IfcMappedItem_type);defs.push_back(IFC2X3_IfcStyledItem_type);defs.push_back(IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcGeometricRepresentationSubContext_type); + IFC2X3_IfcGeometricRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcGridPlacement_type);defs.push_back(IFC2X3_IfcLocalPlacement_type); + IFC2X3_IfcObjectPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcIrregularTimeSeries_type);defs.push_back(IFC2X3_IfcRegularTimeSeries_type); + IFC2X3_IfcTimeSeries_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcLightSourceAmbient_type);defs.push_back(IFC2X3_IfcLightSourceDirectional_type);defs.push_back(IFC2X3_IfcLightSourceGoniometric_type);defs.push_back(IFC2X3_IfcLightSourcePositional_type); + IFC2X3_IfcLightSource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcLightSourceSpot_type); + IFC2X3_IfcLightSourcePositional_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcMaterialDefinitionRepresentation_type);defs.push_back(IFC2X3_IfcProductDefinitionShape_type); + IFC2X3_IfcProductRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcMechanicalConcreteMaterialProperties_type);defs.push_back(IFC2X3_IfcMechanicalSteelMaterialProperties_type); + IFC2X3_IfcMechanicalMaterialProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcMechanicalFastener_type); + IFC2X3_IfcFastener_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcMechanicalFastenerType_type); + IFC2X3_IfcFastenerType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcMetric_type);defs.push_back(IFC2X3_IfcObjective_type); + IFC2X3_IfcConstraint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcMove_type);defs.push_back(IFC2X3_IfcOrderAction_type); + IFC2X3_IfcTask_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcObject_type);defs.push_back(IFC2X3_IfcTypeObject_type); + IFC2X3_IfcObjectDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcObjectDefinition_type);defs.push_back(IFC2X3_IfcPropertyDefinition_type);defs.push_back(IFC2X3_IfcRelationship_type); + IFC2X3_IfcRoot_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcOccupant_type); + IFC2X3_IfcActor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcPhysicalComplexQuantity_type);defs.push_back(IFC2X3_IfcPhysicalSimpleQuantity_type); + IFC2X3_IfcPhysicalQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcPlanarBox_type); + IFC2X3_IfcPlanarExtent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcPlane_type); + IFC2X3_IfcElementarySurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcPostalAddress_type);defs.push_back(IFC2X3_IfcTelecomAddress_type); + IFC2X3_IfcAddress_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcPreDefinedColour_type);defs.push_back(IFC2X3_IfcPreDefinedCurveFont_type);defs.push_back(IFC2X3_IfcPreDefinedSymbol_type);defs.push_back(IFC2X3_IfcPreDefinedTextFont_type); + IFC2X3_IfcPreDefinedItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcPreDefinedDimensionSymbol_type);defs.push_back(IFC2X3_IfcPreDefinedPointMarkerSymbol_type);defs.push_back(IFC2X3_IfcPreDefinedTerminatorSymbol_type); + IFC2X3_IfcPreDefinedSymbol_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcPresentationLayerWithStyle_type); + IFC2X3_IfcPresentationLayerAssignment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcProcedure_type);defs.push_back(IFC2X3_IfcTask_type); + IFC2X3_IfcProcess_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcProjectionElement_type); + IFC2X3_IfcFeatureElementAddition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcPropertyBoundedValue_type);defs.push_back(IFC2X3_IfcPropertyEnumeratedValue_type);defs.push_back(IFC2X3_IfcPropertyListValue_type);defs.push_back(IFC2X3_IfcPropertyReferenceValue_type);defs.push_back(IFC2X3_IfcPropertySingleValue_type);defs.push_back(IFC2X3_IfcPropertyTableValue_type); + IFC2X3_IfcSimpleProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcPropertyDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcQuantityArea_type);defs.push_back(IFC2X3_IfcQuantityCount_type);defs.push_back(IFC2X3_IfcQuantityLength_type);defs.push_back(IFC2X3_IfcQuantityTime_type);defs.push_back(IFC2X3_IfcQuantityVolume_type);defs.push_back(IFC2X3_IfcQuantityWeight_type); + IFC2X3_IfcPhysicalSimpleQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcRationalBezierCurve_type); + IFC2X3_IfcBezierCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcRectangleHollowProfileDef_type);defs.push_back(IFC2X3_IfcRoundedRectangleProfileDef_type); + IFC2X3_IfcRectangleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcReinforcingBar_type);defs.push_back(IFC2X3_IfcReinforcingMesh_type);defs.push_back(IFC2X3_IfcTendon_type);defs.push_back(IFC2X3_IfcTendonAnchor_type); + IFC2X3_IfcReinforcingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcRelAggregates_type);defs.push_back(IFC2X3_IfcRelNests_type); + IFC2X3_IfcRelDecomposes_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcRelAssigns_type);defs.push_back(IFC2X3_IfcRelAssociates_type);defs.push_back(IFC2X3_IfcRelConnects_type);defs.push_back(IFC2X3_IfcRelDecomposes_type);defs.push_back(IFC2X3_IfcRelDefines_type); + IFC2X3_IfcRelationship_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcRelAssignsTasks_type);defs.push_back(IFC2X3_IfcRelAssignsToProjectOrder_type);defs.push_back(IFC2X3_IfcRelSchedulesCostItems_type); + IFC2X3_IfcRelAssignsToControl_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcRelAssignsToActor_type);defs.push_back(IFC2X3_IfcRelAssignsToControl_type);defs.push_back(IFC2X3_IfcRelAssignsToGroup_type);defs.push_back(IFC2X3_IfcRelAssignsToProcess_type);defs.push_back(IFC2X3_IfcRelAssignsToProduct_type);defs.push_back(IFC2X3_IfcRelAssignsToResource_type); + IFC2X3_IfcRelAssigns_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC2X3_IfcRelAssociatesAppliedValue_type);defs.push_back(IFC2X3_IfcRelAssociatesApproval_type);defs.push_back(IFC2X3_IfcRelAssociatesClassification_type);defs.push_back(IFC2X3_IfcRelAssociatesConstraint_type);defs.push_back(IFC2X3_IfcRelAssociatesDocument_type);defs.push_back(IFC2X3_IfcRelAssociatesLibrary_type);defs.push_back(IFC2X3_IfcRelAssociatesMaterial_type);defs.push_back(IFC2X3_IfcRelAssociatesProfileProperties_type); + IFC2X3_IfcRelAssociates_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(18); + defs.push_back(IFC2X3_IfcRelConnectsElements_type);defs.push_back(IFC2X3_IfcRelConnectsPortToElement_type);defs.push_back(IFC2X3_IfcRelConnectsPorts_type);defs.push_back(IFC2X3_IfcRelConnectsStructuralActivity_type);defs.push_back(IFC2X3_IfcRelConnectsStructuralElement_type);defs.push_back(IFC2X3_IfcRelConnectsStructuralMember_type);defs.push_back(IFC2X3_IfcRelContainedInSpatialStructure_type);defs.push_back(IFC2X3_IfcRelCoversBldgElements_type);defs.push_back(IFC2X3_IfcRelCoversSpaces_type);defs.push_back(IFC2X3_IfcRelFillsElement_type);defs.push_back(IFC2X3_IfcRelFlowControlElements_type);defs.push_back(IFC2X3_IfcRelInteractionRequirements_type);defs.push_back(IFC2X3_IfcRelProjectsElement_type);defs.push_back(IFC2X3_IfcRelReferencedInSpatialStructure_type);defs.push_back(IFC2X3_IfcRelSequence_type);defs.push_back(IFC2X3_IfcRelServicesBuildings_type);defs.push_back(IFC2X3_IfcRelSpaceBoundary_type);defs.push_back(IFC2X3_IfcRelVoidsElement_type); + IFC2X3_IfcRelConnects_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcRelConnectsPathElements_type);defs.push_back(IFC2X3_IfcRelConnectsWithRealizingElements_type); + IFC2X3_IfcRelConnectsElements_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcRelConnectsWithEccentricity_type); + IFC2X3_IfcRelConnectsStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcRelDefinesByProperties_type);defs.push_back(IFC2X3_IfcRelDefinesByType_type); + IFC2X3_IfcRelDefines_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcRelOccupiesSpaces_type); + IFC2X3_IfcRelAssignsToActor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcRelOverridesProperties_type); + IFC2X3_IfcRelDefinesByProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcShapeModel_type);defs.push_back(IFC2X3_IfcStyleModel_type); + IFC2X3_IfcRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcShapeRepresentation_type);defs.push_back(IFC2X3_IfcTopologyRepresentation_type); + IFC2X3_IfcShapeModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcSpaceType_type); + IFC2X3_IfcSpatialStructureElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcStructuralAction_type);defs.push_back(IFC2X3_IfcStructuralReaction_type); + IFC2X3_IfcStructuralActivity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcStructuralConnection_type);defs.push_back(IFC2X3_IfcStructuralMember_type); + IFC2X3_IfcStructuralItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcStructuralCurveConnection_type);defs.push_back(IFC2X3_IfcStructuralPointConnection_type);defs.push_back(IFC2X3_IfcStructuralSurfaceConnection_type); + IFC2X3_IfcStructuralConnection_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcStructuralCurveMember_type);defs.push_back(IFC2X3_IfcStructuralSurfaceMember_type); + IFC2X3_IfcStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralCurveMemberVarying_type); + IFC2X3_IfcStructuralCurveMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcStructuralLinearAction_type);defs.push_back(IFC2X3_IfcStructuralPlanarAction_type);defs.push_back(IFC2X3_IfcStructuralPointAction_type); + IFC2X3_IfcStructuralAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralLinearActionVarying_type); + IFC2X3_IfcStructuralLinearAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcStructuralLoadLinearForce_type);defs.push_back(IFC2X3_IfcStructuralLoadPlanarForce_type);defs.push_back(IFC2X3_IfcStructuralLoadSingleDisplacement_type);defs.push_back(IFC2X3_IfcStructuralLoadSingleForce_type);defs.push_back(IFC2X3_IfcStructuralLoadTemperature_type); + IFC2X3_IfcStructuralLoadStatic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralLoadSingleDisplacementDistortion_type); + IFC2X3_IfcStructuralLoadSingleDisplacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralLoadSingleForceWarping_type); + IFC2X3_IfcStructuralLoadSingleForce_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralLoadStatic_type); + IFC2X3_IfcStructuralLoad_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralPlanarActionVarying_type); + IFC2X3_IfcStructuralPlanarAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralPointReaction_type); + IFC2X3_IfcStructuralReaction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralProfileProperties_type); + IFC2X3_IfcGeneralProfileProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralSteelProfileProperties_type); + IFC2X3_IfcStructuralProfileProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralSurfaceMemberVarying_type); + IFC2X3_IfcStructuralSurfaceMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStyledRepresentation_type); + IFC2X3_IfcStyleModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcSurfaceOfLinearExtrusion_type);defs.push_back(IFC2X3_IfcSurfaceOfRevolution_type); + IFC2X3_IfcSweptSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcSurfaceStyleRendering_type); + IFC2X3_IfcSurfaceStyleShading_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcTerminatorSymbol_type); + IFC2X3_IfcAnnotationSymbolOccurrence_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcTextLiteralWithExtent_type); + IFC2X3_IfcTextLiteral_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcTextureCoordinateGenerator_type);defs.push_back(IFC2X3_IfcTextureMap_type); + IFC2X3_IfcTextureCoordinate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcTwoDirectionRepeatFactor_type); + IFC2X3_IfcOneDirectionRepeatFactor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcTypeProduct_type); + IFC2X3_IfcTypeObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcVertexPoint_type); + IFC2X3_IfcVertex_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcVibrationIsolatorType_type); + IFC2X3_IfcDiscreteAccessoryType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcWallStandardCase_type); + IFC2X3_IfcWall_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcWorkPlan_type);defs.push_back(IFC2X3_IfcWorkSchedule_type); + IFC2X3_IfcWorkControl_type->set_subtypes(defs); + } std::vector declarations; declarations.reserve(980); declarations.push_back(IFC2X3_IfcAbsorbedDoseMeasure_type); diff --git a/src/ifcparse/Ifc4-schema.cpp b/src/ifcparse/Ifc4-schema.cpp index 5b5644b777..334610d1ae 100644 --- a/src/ifcparse/Ifc4-schema.cpp +++ b/src/ifcparse/Ifc4-schema.cpp @@ -348,10 +348,13 @@ entity* IFC4_IfcIShapeProfileDef_type = 0; entity* IFC4_IfcImageTexture_type = 0; entity* IFC4_IfcIndexedColourMap_type = 0; entity* IFC4_IfcIndexedPolyCurve_type = 0; +entity* IFC4_IfcIndexedPolygonalFace_type = 0; +entity* IFC4_IfcIndexedPolygonalFaceWithVoids_type = 0; entity* IFC4_IfcIndexedTextureMap_type = 0; entity* IFC4_IfcIndexedTriangleTextureMap_type = 0; entity* IFC4_IfcInterceptor_type = 0; entity* IFC4_IfcInterceptorType_type = 0; +entity* IFC4_IfcIntersectionCurve_type = 0; entity* IFC4_IfcInventory_type = 0; entity* IFC4_IfcIrregularTimeSeries_type = 0; entity* IFC4_IfcIrregularTimeSeriesValue_type = 0; @@ -461,6 +464,7 @@ entity* IFC4_IfcPointOnCurve_type = 0; entity* IFC4_IfcPointOnSurface_type = 0; entity* IFC4_IfcPolyLoop_type = 0; entity* IFC4_IfcPolygonalBoundedHalfSpace_type = 0; +entity* IFC4_IfcPolygonalFaceSet_type = 0; entity* IFC4_IfcPolyline_type = 0; entity* IFC4_IfcPort_type = 0; entity* IFC4_IfcPostalAddress_type = 0; @@ -611,6 +615,7 @@ entity* IFC4_IfcSIUnit_type = 0; entity* IFC4_IfcSanitaryTerminal_type = 0; entity* IFC4_IfcSanitaryTerminalType_type = 0; entity* IFC4_IfcSchedulingTime_type = 0; +entity* IFC4_IfcSeamCurve_type = 0; entity* IFC4_IfcSectionProperties_type = 0; entity* IFC4_IfcSectionReinforcementProperties_type = 0; entity* IFC4_IfcSectionedSpine_type = 0; @@ -644,6 +649,7 @@ entity* IFC4_IfcSpatialStructureElementType_type = 0; entity* IFC4_IfcSpatialZone_type = 0; entity* IFC4_IfcSpatialZoneType_type = 0; entity* IFC4_IfcSphere_type = 0; +entity* IFC4_IfcSphericalSurface_type = 0; entity* IFC4_IfcStackTerminal_type = 0; entity* IFC4_IfcStackTerminalType_type = 0; entity* IFC4_IfcStair_type = 0; @@ -694,6 +700,7 @@ entity* IFC4_IfcSubContractResource_type = 0; entity* IFC4_IfcSubContractResourceType_type = 0; entity* IFC4_IfcSubedge_type = 0; entity* IFC4_IfcSurface_type = 0; +entity* IFC4_IfcSurfaceCurve_type = 0; entity* IFC4_IfcSurfaceCurveSweptAreaSolid_type = 0; entity* IFC4_IfcSurfaceFeature_type = 0; entity* IFC4_IfcSurfaceOfLinearExtrusion_type = 0; @@ -748,6 +755,7 @@ entity* IFC4_IfcTimeSeries_type = 0; entity* IFC4_IfcTimeSeriesValue_type = 0; entity* IFC4_IfcTopologicalRepresentationItem_type = 0; entity* IFC4_IfcTopologyRepresentation_type = 0; +entity* IFC4_IfcToroidalSurface_type = 0; entity* IFC4_IfcTransformer_type = 0; entity* IFC4_IfcTransformerType_type = 0; entity* IFC4_IfcTransportElement_type = 0; @@ -904,7 +912,6 @@ type_declaration* IFC4_IfcSoundPressureMeasure_type = 0; type_declaration* IFC4_IfcSpecificHeatCapacityMeasure_type = 0; type_declaration* IFC4_IfcSpecularExponent_type = 0; type_declaration* IFC4_IfcSpecularRoughness_type = 0; -type_declaration* IFC4_IfcStrippedOptional_type = 0; type_declaration* IFC4_IfcTemperatureGradientMeasure_type = 0; type_declaration* IFC4_IfcTemperatureRateOfChangeMeasure_type = 0; type_declaration* IFC4_IfcText_type = 0; @@ -1119,6 +1126,7 @@ enumeration_type* IFC4_IfcPileTypeEnum_type = 0; enumeration_type* IFC4_IfcPipeFittingTypeEnum_type = 0; enumeration_type* IFC4_IfcPipeSegmentTypeEnum_type = 0; enumeration_type* IFC4_IfcPlateTypeEnum_type = 0; +enumeration_type* IFC4_IfcPreferredSurfaceCurveRepresentation_type = 0; enumeration_type* IFC4_IfcProcedureTypeEnum_type = 0; enumeration_type* IFC4_IfcProfileTypeEnum_type = 0; enumeration_type* IFC4_IfcProjectOrderTypeEnum_type = 0; @@ -1558,545 +1566,552 @@ class IFC4_instance_factory : public IfcParse::instance_factory { case 478: return new ::Ifc4::IfcImageTexture(data); case 479: return new ::Ifc4::IfcIndexedColourMap(data); case 480: return new ::Ifc4::IfcIndexedPolyCurve(data); - case 481: return new ::Ifc4::IfcIndexedTextureMap(data); - case 482: return new ::Ifc4::IfcIndexedTriangleTextureMap(data); - case 483: return new ::Ifc4::IfcInductanceMeasure(data); - case 484: return new ::Ifc4::IfcInteger(data); - case 485: return new ::Ifc4::IfcIntegerCountRateMeasure(data); - case 486: return new ::Ifc4::IfcInterceptor(data); - case 487: return new ::Ifc4::IfcInterceptorType(data); - case 490: return new ::Ifc4::IfcInventory(data); - case 492: return new ::Ifc4::IfcIonConcentrationMeasure(data); - case 493: return new ::Ifc4::IfcIrregularTimeSeries(data); - case 494: return new ::Ifc4::IfcIrregularTimeSeriesValue(data); - case 495: return new ::Ifc4::IfcIShapeProfileDef(data); - case 496: return new ::Ifc4::IfcIsothermalMoistureCapacityMeasure(data); - case 497: return new ::Ifc4::IfcJunctionBox(data); - case 498: return new ::Ifc4::IfcJunctionBoxType(data); - case 500: return new ::Ifc4::IfcKinematicViscosityMeasure(data); - case 502: return new ::Ifc4::IfcLabel(data); - case 503: return new ::Ifc4::IfcLaborResource(data); - case 504: return new ::Ifc4::IfcLaborResourceType(data); - case 506: return new ::Ifc4::IfcLagTime(data); - case 507: return new ::Ifc4::IfcLamp(data); - case 508: return new ::Ifc4::IfcLampType(data); - case 510: return new ::Ifc4::IfcLanguageId(data); - case 513: return new ::Ifc4::IfcLengthMeasure(data); - case 514: return new ::Ifc4::IfcLibraryInformation(data); - case 515: return new ::Ifc4::IfcLibraryReference(data); - case 518: return new ::Ifc4::IfcLightDistributionData(data); - case 521: return new ::Ifc4::IfcLightFixture(data); - case 522: return new ::Ifc4::IfcLightFixtureType(data); - case 524: return new ::Ifc4::IfcLightIntensityDistribution(data); - case 525: return new ::Ifc4::IfcLightSource(data); - case 526: return new ::Ifc4::IfcLightSourceAmbient(data); - case 527: return new ::Ifc4::IfcLightSourceDirectional(data); - case 528: return new ::Ifc4::IfcLightSourceGoniometric(data); - case 529: return new ::Ifc4::IfcLightSourcePositional(data); - case 530: return new ::Ifc4::IfcLightSourceSpot(data); - case 531: return new ::Ifc4::IfcLine(data); - case 532: return new ::Ifc4::IfcLinearForceMeasure(data); - case 533: return new ::Ifc4::IfcLinearMomentMeasure(data); - case 534: return new ::Ifc4::IfcLinearStiffnessMeasure(data); - case 535: return new ::Ifc4::IfcLinearVelocityMeasure(data); - case 536: return new ::Ifc4::IfcLineIndex(data); - case 538: return new ::Ifc4::IfcLocalPlacement(data); - case 539: return new ::Ifc4::IfcLogical(data); - case 541: return new ::Ifc4::IfcLoop(data); - case 542: return new ::Ifc4::IfcLShapeProfileDef(data); - case 543: return new ::Ifc4::IfcLuminousFluxMeasure(data); - case 544: return new ::Ifc4::IfcLuminousIntensityDistributionMeasure(data); - case 545: return new ::Ifc4::IfcLuminousIntensityMeasure(data); - case 546: return new ::Ifc4::IfcMagneticFluxDensityMeasure(data); - case 547: return new ::Ifc4::IfcMagneticFluxMeasure(data); - case 548: return new ::Ifc4::IfcManifoldSolidBrep(data); - case 549: return new ::Ifc4::IfcMapConversion(data); - case 550: return new ::Ifc4::IfcMappedItem(data); - case 551: return new ::Ifc4::IfcMassDensityMeasure(data); - case 552: return new ::Ifc4::IfcMassFlowRateMeasure(data); - case 553: return new ::Ifc4::IfcMassMeasure(data); - case 554: return new ::Ifc4::IfcMassPerLengthMeasure(data); - case 555: return new ::Ifc4::IfcMaterial(data); - case 556: return new ::Ifc4::IfcMaterialClassificationRelationship(data); - case 557: return new ::Ifc4::IfcMaterialConstituent(data); - case 558: return new ::Ifc4::IfcMaterialConstituentSet(data); - case 559: return new ::Ifc4::IfcMaterialDefinition(data); - case 560: return new ::Ifc4::IfcMaterialDefinitionRepresentation(data); - case 561: return new ::Ifc4::IfcMaterialLayer(data); - case 562: return new ::Ifc4::IfcMaterialLayerSet(data); - case 563: return new ::Ifc4::IfcMaterialLayerSetUsage(data); - case 564: return new ::Ifc4::IfcMaterialLayerWithOffsets(data); - case 565: return new ::Ifc4::IfcMaterialList(data); - case 566: return new ::Ifc4::IfcMaterialProfile(data); - case 567: return new ::Ifc4::IfcMaterialProfileSet(data); - case 568: return new ::Ifc4::IfcMaterialProfileSetUsage(data); - case 569: return new ::Ifc4::IfcMaterialProfileSetUsageTapering(data); - case 570: return new ::Ifc4::IfcMaterialProfileWithOffsets(data); - case 571: return new ::Ifc4::IfcMaterialProperties(data); - case 572: return new ::Ifc4::IfcMaterialRelationship(data); - case 574: return new ::Ifc4::IfcMaterialUsageDefinition(data); - case 576: return new ::Ifc4::IfcMeasureWithUnit(data); - case 577: return new ::Ifc4::IfcMechanicalFastener(data); - case 578: return new ::Ifc4::IfcMechanicalFastenerType(data); - case 580: return new ::Ifc4::IfcMedicalDevice(data); - case 581: return new ::Ifc4::IfcMedicalDeviceType(data); - case 583: return new ::Ifc4::IfcMember(data); - case 584: return new ::Ifc4::IfcMemberStandardCase(data); - case 585: return new ::Ifc4::IfcMemberType(data); - case 587: return new ::Ifc4::IfcMetric(data); - case 589: return new ::Ifc4::IfcMirroredProfileDef(data); - case 590: return new ::Ifc4::IfcModulusOfElasticityMeasure(data); - case 591: return new ::Ifc4::IfcModulusOfLinearSubgradeReactionMeasure(data); - case 592: return new ::Ifc4::IfcModulusOfRotationalSubgradeReactionMeasure(data); - case 594: return new ::Ifc4::IfcModulusOfSubgradeReactionMeasure(data); - case 597: return new ::Ifc4::IfcMoistureDiffusivityMeasure(data); - case 598: return new ::Ifc4::IfcMolecularWeightMeasure(data); - case 599: return new ::Ifc4::IfcMomentOfInertiaMeasure(data); - case 600: return new ::Ifc4::IfcMonetaryMeasure(data); - case 601: return new ::Ifc4::IfcMonetaryUnit(data); - case 602: return new ::Ifc4::IfcMonthInYearNumber(data); - case 603: return new ::Ifc4::IfcMotorConnection(data); - case 604: return new ::Ifc4::IfcMotorConnectionType(data); - case 606: return new ::Ifc4::IfcNamedUnit(data); - case 607: return new ::Ifc4::IfcNonNegativeLengthMeasure(data); - case 608: return new ::Ifc4::IfcNormalisedRatioMeasure(data); - case 610: return new ::Ifc4::IfcNumericMeasure(data); - case 611: return new ::Ifc4::IfcObject(data); - case 612: return new ::Ifc4::IfcObjectDefinition(data); - case 613: return new ::Ifc4::IfcObjective(data); - case 615: return new ::Ifc4::IfcObjectPlacement(data); - case 618: return new ::Ifc4::IfcOccupant(data); - case 620: return new ::Ifc4::IfcOffsetCurve2D(data); - case 621: return new ::Ifc4::IfcOffsetCurve3D(data); - case 622: return new ::Ifc4::IfcOpeningElement(data); - case 624: return new ::Ifc4::IfcOpeningStandardCase(data); - case 625: return new ::Ifc4::IfcOpenShell(data); - case 626: return new ::Ifc4::IfcOrganization(data); - case 627: return new ::Ifc4::IfcOrganizationRelationship(data); - case 628: return new ::Ifc4::IfcOrientedEdge(data); - case 629: return new ::Ifc4::IfcOuterBoundaryCurve(data); - case 630: return new ::Ifc4::IfcOutlet(data); - case 631: return new ::Ifc4::IfcOutletType(data); - case 633: return new ::Ifc4::IfcOwnerHistory(data); - case 634: return new ::Ifc4::IfcParameterizedProfileDef(data); - case 635: return new ::Ifc4::IfcParameterValue(data); - case 636: return new ::Ifc4::IfcPath(data); - case 637: return new ::Ifc4::IfcPcurve(data); - case 638: return new ::Ifc4::IfcPerformanceHistory(data); - case 641: return new ::Ifc4::IfcPermeableCoveringProperties(data); - case 642: return new ::Ifc4::IfcPermit(data); - case 644: return new ::Ifc4::IfcPerson(data); - case 645: return new ::Ifc4::IfcPersonAndOrganization(data); - case 646: return new ::Ifc4::IfcPHMeasure(data); - case 647: return new ::Ifc4::IfcPhysicalComplexQuantity(data); - case 649: return new ::Ifc4::IfcPhysicalQuantity(data); - case 650: return new ::Ifc4::IfcPhysicalSimpleQuantity(data); - case 651: return new ::Ifc4::IfcPile(data); - case 653: return new ::Ifc4::IfcPileType(data); - case 655: return new ::Ifc4::IfcPipeFitting(data); - case 656: return new ::Ifc4::IfcPipeFittingType(data); - case 658: return new ::Ifc4::IfcPipeSegment(data); - case 659: return new ::Ifc4::IfcPipeSegmentType(data); - case 661: return new ::Ifc4::IfcPixelTexture(data); - case 662: return new ::Ifc4::IfcPlacement(data); - case 663: return new ::Ifc4::IfcPlanarBox(data); - case 664: return new ::Ifc4::IfcPlanarExtent(data); - case 665: return new ::Ifc4::IfcPlanarForceMeasure(data); - case 666: return new ::Ifc4::IfcPlane(data); - case 667: return new ::Ifc4::IfcPlaneAngleMeasure(data); - case 668: return new ::Ifc4::IfcPlate(data); - case 669: return new ::Ifc4::IfcPlateStandardCase(data); - case 670: return new ::Ifc4::IfcPlateType(data); - case 672: return new ::Ifc4::IfcPoint(data); - case 673: return new ::Ifc4::IfcPointOnCurve(data); - case 674: return new ::Ifc4::IfcPointOnSurface(data); - case 676: return new ::Ifc4::IfcPolygonalBoundedHalfSpace(data); - case 677: return new ::Ifc4::IfcPolyline(data); - case 678: return new ::Ifc4::IfcPolyLoop(data); - case 679: return new ::Ifc4::IfcPort(data); - case 680: return new ::Ifc4::IfcPositiveInteger(data); - case 681: return new ::Ifc4::IfcPositiveLengthMeasure(data); - case 682: return new ::Ifc4::IfcPositivePlaneAngleMeasure(data); - case 683: return new ::Ifc4::IfcPositiveRatioMeasure(data); - case 684: return new ::Ifc4::IfcPostalAddress(data); - case 685: return new ::Ifc4::IfcPowerMeasure(data); - case 686: return new ::Ifc4::IfcPreDefinedColour(data); - case 687: return new ::Ifc4::IfcPreDefinedCurveFont(data); - case 688: return new ::Ifc4::IfcPreDefinedItem(data); - case 689: return new ::Ifc4::IfcPreDefinedProperties(data); - case 690: return new ::Ifc4::IfcPreDefinedPropertySet(data); - case 691: return new ::Ifc4::IfcPreDefinedTextFont(data); - case 692: return new ::Ifc4::IfcPresentableText(data); - case 693: return new ::Ifc4::IfcPresentationItem(data); - case 694: return new ::Ifc4::IfcPresentationLayerAssignment(data); - case 695: return new ::Ifc4::IfcPresentationLayerWithStyle(data); - case 696: return new ::Ifc4::IfcPresentationStyle(data); - case 697: return new ::Ifc4::IfcPresentationStyleAssignment(data); - case 699: return new ::Ifc4::IfcPressureMeasure(data); - case 700: return new ::Ifc4::IfcProcedure(data); - case 701: return new ::Ifc4::IfcProcedureType(data); - case 703: return new ::Ifc4::IfcProcess(data); - case 705: return new ::Ifc4::IfcProduct(data); - case 706: return new ::Ifc4::IfcProductDefinitionShape(data); - case 707: return new ::Ifc4::IfcProductRepresentation(data); - case 710: return new ::Ifc4::IfcProfileDef(data); - case 711: return new ::Ifc4::IfcProfileProperties(data); - case 713: return new ::Ifc4::IfcProject(data); - case 714: return new ::Ifc4::IfcProjectedCRS(data); - case 716: return new ::Ifc4::IfcProjectionElement(data); - case 718: return new ::Ifc4::IfcProjectLibrary(data); - case 719: return new ::Ifc4::IfcProjectOrder(data); - case 721: return new ::Ifc4::IfcProperty(data); - case 722: return new ::Ifc4::IfcPropertyAbstraction(data); - case 723: return new ::Ifc4::IfcPropertyBoundedValue(data); - case 724: return new ::Ifc4::IfcPropertyDefinition(data); - case 725: return new ::Ifc4::IfcPropertyDependencyRelationship(data); - case 726: return new ::Ifc4::IfcPropertyEnumeratedValue(data); - case 727: return new ::Ifc4::IfcPropertyEnumeration(data); - case 728: return new ::Ifc4::IfcPropertyListValue(data); - case 729: return new ::Ifc4::IfcPropertyReferenceValue(data); - case 730: return new ::Ifc4::IfcPropertySet(data); - case 731: return new ::Ifc4::IfcPropertySetDefinition(data); - case 733: return new ::Ifc4::IfcPropertySetDefinitionSet(data); - case 734: return new ::Ifc4::IfcPropertySetTemplate(data); - case 736: return new ::Ifc4::IfcPropertySingleValue(data); - case 737: return new ::Ifc4::IfcPropertyTableValue(data); - case 738: return new ::Ifc4::IfcPropertyTemplate(data); - case 739: return new ::Ifc4::IfcPropertyTemplateDefinition(data); - case 740: return new ::Ifc4::IfcProtectiveDevice(data); - case 741: return new ::Ifc4::IfcProtectiveDeviceTrippingUnit(data); - case 742: return new ::Ifc4::IfcProtectiveDeviceTrippingUnitType(data); - case 744: return new ::Ifc4::IfcProtectiveDeviceType(data); - case 746: return new ::Ifc4::IfcProxy(data); - case 747: return new ::Ifc4::IfcPump(data); - case 748: return new ::Ifc4::IfcPumpType(data); - case 750: return new ::Ifc4::IfcQuantityArea(data); - case 751: return new ::Ifc4::IfcQuantityCount(data); - case 752: return new ::Ifc4::IfcQuantityLength(data); - case 753: return new ::Ifc4::IfcQuantitySet(data); - case 754: return new ::Ifc4::IfcQuantityTime(data); - case 755: return new ::Ifc4::IfcQuantityVolume(data); - case 756: return new ::Ifc4::IfcQuantityWeight(data); - case 757: return new ::Ifc4::IfcRadioActivityMeasure(data); - case 758: return new ::Ifc4::IfcRailing(data); - case 759: return new ::Ifc4::IfcRailingType(data); - case 761: return new ::Ifc4::IfcRamp(data); - case 762: return new ::Ifc4::IfcRampFlight(data); - case 763: return new ::Ifc4::IfcRampFlightType(data); - case 765: return new ::Ifc4::IfcRampType(data); - case 767: return new ::Ifc4::IfcRatioMeasure(data); - case 768: return new ::Ifc4::IfcRationalBSplineCurveWithKnots(data); - case 769: return new ::Ifc4::IfcRationalBSplineSurfaceWithKnots(data); - case 770: return new ::Ifc4::IfcReal(data); - case 771: return new ::Ifc4::IfcRectangleHollowProfileDef(data); - case 772: return new ::Ifc4::IfcRectangleProfileDef(data); - case 773: return new ::Ifc4::IfcRectangularPyramid(data); - case 774: return new ::Ifc4::IfcRectangularTrimmedSurface(data); - case 775: return new ::Ifc4::IfcRecurrencePattern(data); - case 777: return new ::Ifc4::IfcReference(data); - case 779: return new ::Ifc4::IfcRegularTimeSeries(data); - case 780: return new ::Ifc4::IfcReinforcementBarProperties(data); - case 781: return new ::Ifc4::IfcReinforcementDefinitionProperties(data); - case 782: return new ::Ifc4::IfcReinforcingBar(data); - case 785: return new ::Ifc4::IfcReinforcingBarType(data); - case 787: return new ::Ifc4::IfcReinforcingElement(data); - case 788: return new ::Ifc4::IfcReinforcingElementType(data); - case 789: return new ::Ifc4::IfcReinforcingMesh(data); - case 790: return new ::Ifc4::IfcReinforcingMeshType(data); - case 792: return new ::Ifc4::IfcRelAggregates(data); - case 793: return new ::Ifc4::IfcRelAssigns(data); - case 794: return new ::Ifc4::IfcRelAssignsToActor(data); - case 795: return new ::Ifc4::IfcRelAssignsToControl(data); - case 796: return new ::Ifc4::IfcRelAssignsToGroup(data); - case 797: return new ::Ifc4::IfcRelAssignsToGroupByFactor(data); - case 798: return new ::Ifc4::IfcRelAssignsToProcess(data); - case 799: return new ::Ifc4::IfcRelAssignsToProduct(data); - case 800: return new ::Ifc4::IfcRelAssignsToResource(data); - case 801: return new ::Ifc4::IfcRelAssociates(data); - case 802: return new ::Ifc4::IfcRelAssociatesApproval(data); - case 803: return new ::Ifc4::IfcRelAssociatesClassification(data); - case 804: return new ::Ifc4::IfcRelAssociatesConstraint(data); - case 805: return new ::Ifc4::IfcRelAssociatesDocument(data); - case 806: return new ::Ifc4::IfcRelAssociatesLibrary(data); - case 807: return new ::Ifc4::IfcRelAssociatesMaterial(data); - case 808: return new ::Ifc4::IfcRelationship(data); - case 809: return new ::Ifc4::IfcRelConnects(data); - case 810: return new ::Ifc4::IfcRelConnectsElements(data); - case 811: return new ::Ifc4::IfcRelConnectsPathElements(data); - case 812: return new ::Ifc4::IfcRelConnectsPorts(data); - case 813: return new ::Ifc4::IfcRelConnectsPortToElement(data); - case 814: return new ::Ifc4::IfcRelConnectsStructuralActivity(data); - case 815: return new ::Ifc4::IfcRelConnectsStructuralMember(data); - case 816: return new ::Ifc4::IfcRelConnectsWithEccentricity(data); - case 817: return new ::Ifc4::IfcRelConnectsWithRealizingElements(data); - case 818: return new ::Ifc4::IfcRelContainedInSpatialStructure(data); - case 819: return new ::Ifc4::IfcRelCoversBldgElements(data); - case 820: return new ::Ifc4::IfcRelCoversSpaces(data); - case 821: return new ::Ifc4::IfcRelDeclares(data); - case 822: return new ::Ifc4::IfcRelDecomposes(data); - case 823: return new ::Ifc4::IfcRelDefines(data); - case 824: return new ::Ifc4::IfcRelDefinesByObject(data); - case 825: return new ::Ifc4::IfcRelDefinesByProperties(data); - case 826: return new ::Ifc4::IfcRelDefinesByTemplate(data); - case 827: return new ::Ifc4::IfcRelDefinesByType(data); - case 828: return new ::Ifc4::IfcRelFillsElement(data); - case 829: return new ::Ifc4::IfcRelFlowControlElements(data); - case 830: return new ::Ifc4::IfcRelInterferesElements(data); - case 831: return new ::Ifc4::IfcRelNests(data); - case 832: return new ::Ifc4::IfcRelProjectsElement(data); - case 833: return new ::Ifc4::IfcRelReferencedInSpatialStructure(data); - case 834: return new ::Ifc4::IfcRelSequence(data); - case 835: return new ::Ifc4::IfcRelServicesBuildings(data); - case 836: return new ::Ifc4::IfcRelSpaceBoundary(data); - case 837: return new ::Ifc4::IfcRelSpaceBoundary1stLevel(data); - case 838: return new ::Ifc4::IfcRelSpaceBoundary2ndLevel(data); - case 839: return new ::Ifc4::IfcRelVoidsElement(data); - case 840: return new ::Ifc4::IfcReparametrisedCompositeCurveSegment(data); - case 841: return new ::Ifc4::IfcRepresentation(data); - case 842: return new ::Ifc4::IfcRepresentationContext(data); - case 843: return new ::Ifc4::IfcRepresentationItem(data); - case 844: return new ::Ifc4::IfcRepresentationMap(data); - case 845: return new ::Ifc4::IfcResource(data); - case 846: return new ::Ifc4::IfcResourceApprovalRelationship(data); - case 847: return new ::Ifc4::IfcResourceConstraintRelationship(data); - case 848: return new ::Ifc4::IfcResourceLevelRelationship(data); - case 851: return new ::Ifc4::IfcResourceTime(data); - case 852: return new ::Ifc4::IfcRevolvedAreaSolid(data); - case 853: return new ::Ifc4::IfcRevolvedAreaSolidTapered(data); - case 854: return new ::Ifc4::IfcRightCircularCone(data); - case 855: return new ::Ifc4::IfcRightCircularCylinder(data); - case 857: return new ::Ifc4::IfcRoof(data); - case 858: return new ::Ifc4::IfcRoofType(data); - case 860: return new ::Ifc4::IfcRoot(data); - case 861: return new ::Ifc4::IfcRotationalFrequencyMeasure(data); - case 862: return new ::Ifc4::IfcRotationalMassMeasure(data); - case 863: return new ::Ifc4::IfcRotationalStiffnessMeasure(data); - case 865: return new ::Ifc4::IfcRoundedRectangleProfileDef(data); - case 866: return new ::Ifc4::IfcSanitaryTerminal(data); - case 867: return new ::Ifc4::IfcSanitaryTerminalType(data); - case 869: return new ::Ifc4::IfcSchedulingTime(data); - case 870: return new ::Ifc4::IfcSectionalAreaIntegralMeasure(data); - case 871: return new ::Ifc4::IfcSectionedSpine(data); - case 872: return new ::Ifc4::IfcSectionModulusMeasure(data); - case 873: return new ::Ifc4::IfcSectionProperties(data); - case 874: return new ::Ifc4::IfcSectionReinforcementProperties(data); - case 877: return new ::Ifc4::IfcSensor(data); - case 878: return new ::Ifc4::IfcSensorType(data); - case 881: return new ::Ifc4::IfcShadingDevice(data); - case 882: return new ::Ifc4::IfcShadingDeviceType(data); - case 884: return new ::Ifc4::IfcShapeAspect(data); - case 885: return new ::Ifc4::IfcShapeModel(data); - case 886: return new ::Ifc4::IfcShapeRepresentation(data); - case 887: return new ::Ifc4::IfcShearModulusMeasure(data); - case 889: return new ::Ifc4::IfcShellBasedSurfaceModel(data); - case 890: return new ::Ifc4::IfcSimpleProperty(data); - case 891: return new ::Ifc4::IfcSimplePropertyTemplate(data); - case 895: return new ::Ifc4::IfcSite(data); - case 896: return new ::Ifc4::IfcSIUnit(data); - case 899: return new ::Ifc4::IfcSlab(data); - case 900: return new ::Ifc4::IfcSlabElementedCase(data); - case 901: return new ::Ifc4::IfcSlabStandardCase(data); - case 902: return new ::Ifc4::IfcSlabType(data); - case 904: return new ::Ifc4::IfcSlippageConnectionCondition(data); - case 905: return new ::Ifc4::IfcSolarDevice(data); - case 906: return new ::Ifc4::IfcSolarDeviceType(data); - case 908: return new ::Ifc4::IfcSolidAngleMeasure(data); - case 909: return new ::Ifc4::IfcSolidModel(data); - case 911: return new ::Ifc4::IfcSoundPowerLevelMeasure(data); - case 912: return new ::Ifc4::IfcSoundPowerMeasure(data); - case 913: return new ::Ifc4::IfcSoundPressureLevelMeasure(data); - case 914: return new ::Ifc4::IfcSoundPressureMeasure(data); - case 915: return new ::Ifc4::IfcSpace(data); - case 917: return new ::Ifc4::IfcSpaceHeater(data); - case 918: return new ::Ifc4::IfcSpaceHeaterType(data); - case 920: return new ::Ifc4::IfcSpaceType(data); - case 922: return new ::Ifc4::IfcSpatialElement(data); - case 923: return new ::Ifc4::IfcSpatialElementType(data); - case 924: return new ::Ifc4::IfcSpatialStructureElement(data); - case 925: return new ::Ifc4::IfcSpatialStructureElementType(data); - case 926: return new ::Ifc4::IfcSpatialZone(data); - case 927: return new ::Ifc4::IfcSpatialZoneType(data); - case 929: return new ::Ifc4::IfcSpecificHeatCapacityMeasure(data); - case 930: return new ::Ifc4::IfcSpecularExponent(data); - case 932: return new ::Ifc4::IfcSpecularRoughness(data); - case 933: return new ::Ifc4::IfcSphere(data); - case 934: return new ::Ifc4::IfcStackTerminal(data); - case 935: return new ::Ifc4::IfcStackTerminalType(data); - case 937: return new ::Ifc4::IfcStair(data); - case 938: return new ::Ifc4::IfcStairFlight(data); - case 939: return new ::Ifc4::IfcStairFlightType(data); - case 941: return new ::Ifc4::IfcStairType(data); - case 944: return new ::Ifc4::IfcStrippedOptional(data); - case 945: return new ::Ifc4::IfcStructuralAction(data); - case 946: return new ::Ifc4::IfcStructuralActivity(data); - case 948: return new ::Ifc4::IfcStructuralAnalysisModel(data); - case 949: return new ::Ifc4::IfcStructuralConnection(data); - case 950: return new ::Ifc4::IfcStructuralConnectionCondition(data); - case 951: return new ::Ifc4::IfcStructuralCurveAction(data); - case 953: return new ::Ifc4::IfcStructuralCurveConnection(data); - case 954: return new ::Ifc4::IfcStructuralCurveMember(data); - case 956: return new ::Ifc4::IfcStructuralCurveMemberVarying(data); - case 957: return new ::Ifc4::IfcStructuralCurveReaction(data); - case 958: return new ::Ifc4::IfcStructuralItem(data); - case 959: return new ::Ifc4::IfcStructuralLinearAction(data); - case 960: return new ::Ifc4::IfcStructuralLoad(data); - case 961: return new ::Ifc4::IfcStructuralLoadCase(data); - case 962: return new ::Ifc4::IfcStructuralLoadConfiguration(data); - case 963: return new ::Ifc4::IfcStructuralLoadGroup(data); - case 964: return new ::Ifc4::IfcStructuralLoadLinearForce(data); - case 965: return new ::Ifc4::IfcStructuralLoadOrResult(data); - case 966: return new ::Ifc4::IfcStructuralLoadPlanarForce(data); - case 967: return new ::Ifc4::IfcStructuralLoadSingleDisplacement(data); - case 968: return new ::Ifc4::IfcStructuralLoadSingleDisplacementDistortion(data); - case 969: return new ::Ifc4::IfcStructuralLoadSingleForce(data); - case 970: return new ::Ifc4::IfcStructuralLoadSingleForceWarping(data); - case 971: return new ::Ifc4::IfcStructuralLoadStatic(data); - case 972: return new ::Ifc4::IfcStructuralLoadTemperature(data); - case 973: return new ::Ifc4::IfcStructuralMember(data); - case 974: return new ::Ifc4::IfcStructuralPlanarAction(data); - case 975: return new ::Ifc4::IfcStructuralPointAction(data); - case 976: return new ::Ifc4::IfcStructuralPointConnection(data); - case 977: return new ::Ifc4::IfcStructuralPointReaction(data); - case 978: return new ::Ifc4::IfcStructuralReaction(data); - case 979: return new ::Ifc4::IfcStructuralResultGroup(data); - case 980: return new ::Ifc4::IfcStructuralSurfaceAction(data); - case 982: return new ::Ifc4::IfcStructuralSurfaceConnection(data); - case 983: return new ::Ifc4::IfcStructuralSurfaceMember(data); - case 985: return new ::Ifc4::IfcStructuralSurfaceMemberVarying(data); - case 986: return new ::Ifc4::IfcStructuralSurfaceReaction(data); - case 988: return new ::Ifc4::IfcStyledItem(data); - case 989: return new ::Ifc4::IfcStyledRepresentation(data); - case 990: return new ::Ifc4::IfcStyleModel(data); - case 991: return new ::Ifc4::IfcSubContractResource(data); - case 992: return new ::Ifc4::IfcSubContractResourceType(data); - case 994: return new ::Ifc4::IfcSubedge(data); - case 995: return new ::Ifc4::IfcSurface(data); - case 996: return new ::Ifc4::IfcSurfaceCurveSweptAreaSolid(data); - case 997: return new ::Ifc4::IfcSurfaceFeature(data); - case 999: return new ::Ifc4::IfcSurfaceOfLinearExtrusion(data); - case 1000: return new ::Ifc4::IfcSurfaceOfRevolution(data); - case 1002: return new ::Ifc4::IfcSurfaceReinforcementArea(data); - case 1004: return new ::Ifc4::IfcSurfaceStyle(data); - case 1006: return new ::Ifc4::IfcSurfaceStyleLighting(data); - case 1007: return new ::Ifc4::IfcSurfaceStyleRefraction(data); - case 1008: return new ::Ifc4::IfcSurfaceStyleRendering(data); - case 1009: return new ::Ifc4::IfcSurfaceStyleShading(data); - case 1010: return new ::Ifc4::IfcSurfaceStyleWithTextures(data); - case 1011: return new ::Ifc4::IfcSurfaceTexture(data); - case 1012: return new ::Ifc4::IfcSweptAreaSolid(data); - case 1013: return new ::Ifc4::IfcSweptDiskSolid(data); - case 1014: return new ::Ifc4::IfcSweptDiskSolidPolygonal(data); - case 1015: return new ::Ifc4::IfcSweptSurface(data); - case 1016: return new ::Ifc4::IfcSwitchingDevice(data); - case 1017: return new ::Ifc4::IfcSwitchingDeviceType(data); - case 1019: return new ::Ifc4::IfcSystem(data); - case 1020: return new ::Ifc4::IfcSystemFurnitureElement(data); - case 1021: return new ::Ifc4::IfcSystemFurnitureElementType(data); - case 1023: return new ::Ifc4::IfcTable(data); - case 1024: return new ::Ifc4::IfcTableColumn(data); - case 1025: return new ::Ifc4::IfcTableRow(data); - case 1026: return new ::Ifc4::IfcTank(data); - case 1027: return new ::Ifc4::IfcTankType(data); - case 1029: return new ::Ifc4::IfcTask(data); - case 1031: return new ::Ifc4::IfcTaskTime(data); - case 1032: return new ::Ifc4::IfcTaskTimeRecurring(data); - case 1033: return new ::Ifc4::IfcTaskType(data); - case 1035: return new ::Ifc4::IfcTelecomAddress(data); - case 1036: return new ::Ifc4::IfcTemperatureGradientMeasure(data); - case 1037: return new ::Ifc4::IfcTemperatureRateOfChangeMeasure(data); - case 1038: return new ::Ifc4::IfcTendon(data); - case 1039: return new ::Ifc4::IfcTendonAnchor(data); - case 1040: return new ::Ifc4::IfcTendonAnchorType(data); - case 1042: return new ::Ifc4::IfcTendonType(data); - case 1044: return new ::Ifc4::IfcTessellatedFaceSet(data); - case 1045: return new ::Ifc4::IfcTessellatedItem(data); - case 1046: return new ::Ifc4::IfcText(data); - case 1047: return new ::Ifc4::IfcTextAlignment(data); - case 1048: return new ::Ifc4::IfcTextDecoration(data); - case 1049: return new ::Ifc4::IfcTextFontName(data); - case 1051: return new ::Ifc4::IfcTextLiteral(data); - case 1052: return new ::Ifc4::IfcTextLiteralWithExtent(data); - case 1054: return new ::Ifc4::IfcTextStyle(data); - case 1055: return new ::Ifc4::IfcTextStyleFontModel(data); - case 1056: return new ::Ifc4::IfcTextStyleForDefinedFont(data); - case 1057: return new ::Ifc4::IfcTextStyleTextModel(data); - case 1058: return new ::Ifc4::IfcTextTransformation(data); - case 1059: return new ::Ifc4::IfcTextureCoordinate(data); - case 1060: return new ::Ifc4::IfcTextureCoordinateGenerator(data); - case 1061: return new ::Ifc4::IfcTextureMap(data); - case 1062: return new ::Ifc4::IfcTextureVertex(data); - case 1063: return new ::Ifc4::IfcTextureVertexList(data); - case 1064: return new ::Ifc4::IfcThermalAdmittanceMeasure(data); - case 1065: return new ::Ifc4::IfcThermalConductivityMeasure(data); - case 1066: return new ::Ifc4::IfcThermalExpansionCoefficientMeasure(data); - case 1067: return new ::Ifc4::IfcThermalResistanceMeasure(data); - case 1068: return new ::Ifc4::IfcThermalTransmittanceMeasure(data); - case 1069: return new ::Ifc4::IfcThermodynamicTemperatureMeasure(data); - case 1070: return new ::Ifc4::IfcTime(data); - case 1071: return new ::Ifc4::IfcTimeMeasure(data); - case 1073: return new ::Ifc4::IfcTimePeriod(data); - case 1074: return new ::Ifc4::IfcTimeSeries(data); - case 1076: return new ::Ifc4::IfcTimeSeriesValue(data); - case 1077: return new ::Ifc4::IfcTimeStamp(data); - case 1078: return new ::Ifc4::IfcTopologicalRepresentationItem(data); - case 1079: return new ::Ifc4::IfcTopologyRepresentation(data); - case 1080: return new ::Ifc4::IfcTorqueMeasure(data); - case 1081: return new ::Ifc4::IfcTransformer(data); - case 1082: return new ::Ifc4::IfcTransformerType(data); - case 1086: return new ::Ifc4::IfcTransportElement(data); - case 1087: return new ::Ifc4::IfcTransportElementType(data); - case 1089: return new ::Ifc4::IfcTrapeziumProfileDef(data); - case 1090: return new ::Ifc4::IfcTriangulatedFaceSet(data); - case 1091: return new ::Ifc4::IfcTrimmedCurve(data); - case 1094: return new ::Ifc4::IfcTShapeProfileDef(data); - case 1095: return new ::Ifc4::IfcTubeBundle(data); - case 1096: return new ::Ifc4::IfcTubeBundleType(data); - case 1098: return new ::Ifc4::IfcTypeObject(data); - case 1099: return new ::Ifc4::IfcTypeProcess(data); - case 1100: return new ::Ifc4::IfcTypeProduct(data); - case 1101: return new ::Ifc4::IfcTypeResource(data); - case 1103: return new ::Ifc4::IfcUnitaryControlElement(data); - case 1104: return new ::Ifc4::IfcUnitaryControlElementType(data); - case 1106: return new ::Ifc4::IfcUnitaryEquipment(data); - case 1107: return new ::Ifc4::IfcUnitaryEquipmentType(data); - case 1109: return new ::Ifc4::IfcUnitAssignment(data); - case 1111: return new ::Ifc4::IfcURIReference(data); - case 1112: return new ::Ifc4::IfcUShapeProfileDef(data); - case 1114: return new ::Ifc4::IfcValve(data); - case 1115: return new ::Ifc4::IfcValveType(data); - case 1117: return new ::Ifc4::IfcVaporPermeabilityMeasure(data); - case 1118: return new ::Ifc4::IfcVector(data); - case 1120: return new ::Ifc4::IfcVertex(data); - case 1121: return new ::Ifc4::IfcVertexLoop(data); - case 1122: return new ::Ifc4::IfcVertexPoint(data); - case 1123: return new ::Ifc4::IfcVibrationIsolator(data); - case 1124: return new ::Ifc4::IfcVibrationIsolatorType(data); - case 1126: return new ::Ifc4::IfcVirtualElement(data); - case 1127: return new ::Ifc4::IfcVirtualGridIntersection(data); - case 1128: return new ::Ifc4::IfcVoidingFeature(data); - case 1130: return new ::Ifc4::IfcVolumeMeasure(data); - case 1131: return new ::Ifc4::IfcVolumetricFlowRateMeasure(data); - case 1132: return new ::Ifc4::IfcWall(data); - case 1133: return new ::Ifc4::IfcWallElementedCase(data); - case 1134: return new ::Ifc4::IfcWallStandardCase(data); - case 1135: return new ::Ifc4::IfcWallType(data); - case 1137: return new ::Ifc4::IfcWarpingConstantMeasure(data); - case 1138: return new ::Ifc4::IfcWarpingMomentMeasure(data); - case 1140: return new ::Ifc4::IfcWasteTerminal(data); - case 1141: return new ::Ifc4::IfcWasteTerminalType(data); - case 1143: return new ::Ifc4::IfcWindow(data); - case 1144: return new ::Ifc4::IfcWindowLiningProperties(data); - case 1147: return new ::Ifc4::IfcWindowPanelProperties(data); - case 1148: return new ::Ifc4::IfcWindowStandardCase(data); - case 1149: return new ::Ifc4::IfcWindowStyle(data); - case 1152: return new ::Ifc4::IfcWindowType(data); - case 1155: return new ::Ifc4::IfcWorkCalendar(data); - case 1157: return new ::Ifc4::IfcWorkControl(data); - case 1158: return new ::Ifc4::IfcWorkPlan(data); - case 1160: return new ::Ifc4::IfcWorkSchedule(data); - case 1162: return new ::Ifc4::IfcWorkTime(data); - case 1163: return new ::Ifc4::IfcZone(data); - case 1164: return new ::Ifc4::IfcZShapeProfileDef(data); + case 481: return new ::Ifc4::IfcIndexedPolygonalFace(data); + case 482: return new ::Ifc4::IfcIndexedPolygonalFaceWithVoids(data); + case 483: return new ::Ifc4::IfcIndexedTextureMap(data); + case 484: return new ::Ifc4::IfcIndexedTriangleTextureMap(data); + case 485: return new ::Ifc4::IfcInductanceMeasure(data); + case 486: return new ::Ifc4::IfcInteger(data); + case 487: return new ::Ifc4::IfcIntegerCountRateMeasure(data); + case 488: return new ::Ifc4::IfcInterceptor(data); + case 489: return new ::Ifc4::IfcInterceptorType(data); + case 492: return new ::Ifc4::IfcIntersectionCurve(data); + case 493: return new ::Ifc4::IfcInventory(data); + case 495: return new ::Ifc4::IfcIonConcentrationMeasure(data); + case 496: return new ::Ifc4::IfcIrregularTimeSeries(data); + case 497: return new ::Ifc4::IfcIrregularTimeSeriesValue(data); + case 498: return new ::Ifc4::IfcIShapeProfileDef(data); + case 499: return new ::Ifc4::IfcIsothermalMoistureCapacityMeasure(data); + case 500: return new ::Ifc4::IfcJunctionBox(data); + case 501: return new ::Ifc4::IfcJunctionBoxType(data); + case 503: return new ::Ifc4::IfcKinematicViscosityMeasure(data); + case 505: return new ::Ifc4::IfcLabel(data); + case 506: return new ::Ifc4::IfcLaborResource(data); + case 507: return new ::Ifc4::IfcLaborResourceType(data); + case 509: return new ::Ifc4::IfcLagTime(data); + case 510: return new ::Ifc4::IfcLamp(data); + case 511: return new ::Ifc4::IfcLampType(data); + case 513: return new ::Ifc4::IfcLanguageId(data); + case 516: return new ::Ifc4::IfcLengthMeasure(data); + case 517: return new ::Ifc4::IfcLibraryInformation(data); + case 518: return new ::Ifc4::IfcLibraryReference(data); + case 521: return new ::Ifc4::IfcLightDistributionData(data); + case 524: return new ::Ifc4::IfcLightFixture(data); + case 525: return new ::Ifc4::IfcLightFixtureType(data); + case 527: return new ::Ifc4::IfcLightIntensityDistribution(data); + case 528: return new ::Ifc4::IfcLightSource(data); + case 529: return new ::Ifc4::IfcLightSourceAmbient(data); + case 530: return new ::Ifc4::IfcLightSourceDirectional(data); + case 531: return new ::Ifc4::IfcLightSourceGoniometric(data); + case 532: return new ::Ifc4::IfcLightSourcePositional(data); + case 533: return new ::Ifc4::IfcLightSourceSpot(data); + case 534: return new ::Ifc4::IfcLine(data); + case 535: return new ::Ifc4::IfcLinearForceMeasure(data); + case 536: return new ::Ifc4::IfcLinearMomentMeasure(data); + case 537: return new ::Ifc4::IfcLinearStiffnessMeasure(data); + case 538: return new ::Ifc4::IfcLinearVelocityMeasure(data); + case 539: return new ::Ifc4::IfcLineIndex(data); + case 541: return new ::Ifc4::IfcLocalPlacement(data); + case 542: return new ::Ifc4::IfcLogical(data); + case 544: return new ::Ifc4::IfcLoop(data); + case 545: return new ::Ifc4::IfcLShapeProfileDef(data); + case 546: return new ::Ifc4::IfcLuminousFluxMeasure(data); + case 547: return new ::Ifc4::IfcLuminousIntensityDistributionMeasure(data); + case 548: return new ::Ifc4::IfcLuminousIntensityMeasure(data); + case 549: return new ::Ifc4::IfcMagneticFluxDensityMeasure(data); + case 550: return new ::Ifc4::IfcMagneticFluxMeasure(data); + case 551: return new ::Ifc4::IfcManifoldSolidBrep(data); + case 552: return new ::Ifc4::IfcMapConversion(data); + case 553: return new ::Ifc4::IfcMappedItem(data); + case 554: return new ::Ifc4::IfcMassDensityMeasure(data); + case 555: return new ::Ifc4::IfcMassFlowRateMeasure(data); + case 556: return new ::Ifc4::IfcMassMeasure(data); + case 557: return new ::Ifc4::IfcMassPerLengthMeasure(data); + case 558: return new ::Ifc4::IfcMaterial(data); + case 559: return new ::Ifc4::IfcMaterialClassificationRelationship(data); + case 560: return new ::Ifc4::IfcMaterialConstituent(data); + case 561: return new ::Ifc4::IfcMaterialConstituentSet(data); + case 562: return new ::Ifc4::IfcMaterialDefinition(data); + case 563: return new ::Ifc4::IfcMaterialDefinitionRepresentation(data); + case 564: return new ::Ifc4::IfcMaterialLayer(data); + case 565: return new ::Ifc4::IfcMaterialLayerSet(data); + case 566: return new ::Ifc4::IfcMaterialLayerSetUsage(data); + case 567: return new ::Ifc4::IfcMaterialLayerWithOffsets(data); + case 568: return new ::Ifc4::IfcMaterialList(data); + case 569: return new ::Ifc4::IfcMaterialProfile(data); + case 570: return new ::Ifc4::IfcMaterialProfileSet(data); + case 571: return new ::Ifc4::IfcMaterialProfileSetUsage(data); + case 572: return new ::Ifc4::IfcMaterialProfileSetUsageTapering(data); + case 573: return new ::Ifc4::IfcMaterialProfileWithOffsets(data); + case 574: return new ::Ifc4::IfcMaterialProperties(data); + case 575: return new ::Ifc4::IfcMaterialRelationship(data); + case 577: return new ::Ifc4::IfcMaterialUsageDefinition(data); + case 579: return new ::Ifc4::IfcMeasureWithUnit(data); + case 580: return new ::Ifc4::IfcMechanicalFastener(data); + case 581: return new ::Ifc4::IfcMechanicalFastenerType(data); + case 583: return new ::Ifc4::IfcMedicalDevice(data); + case 584: return new ::Ifc4::IfcMedicalDeviceType(data); + case 586: return new ::Ifc4::IfcMember(data); + case 587: return new ::Ifc4::IfcMemberStandardCase(data); + case 588: return new ::Ifc4::IfcMemberType(data); + case 590: return new ::Ifc4::IfcMetric(data); + case 592: return new ::Ifc4::IfcMirroredProfileDef(data); + case 593: return new ::Ifc4::IfcModulusOfElasticityMeasure(data); + case 594: return new ::Ifc4::IfcModulusOfLinearSubgradeReactionMeasure(data); + case 595: return new ::Ifc4::IfcModulusOfRotationalSubgradeReactionMeasure(data); + case 597: return new ::Ifc4::IfcModulusOfSubgradeReactionMeasure(data); + case 600: return new ::Ifc4::IfcMoistureDiffusivityMeasure(data); + case 601: return new ::Ifc4::IfcMolecularWeightMeasure(data); + case 602: return new ::Ifc4::IfcMomentOfInertiaMeasure(data); + case 603: return new ::Ifc4::IfcMonetaryMeasure(data); + case 604: return new ::Ifc4::IfcMonetaryUnit(data); + case 605: return new ::Ifc4::IfcMonthInYearNumber(data); + case 606: return new ::Ifc4::IfcMotorConnection(data); + case 607: return new ::Ifc4::IfcMotorConnectionType(data); + case 609: return new ::Ifc4::IfcNamedUnit(data); + case 610: return new ::Ifc4::IfcNonNegativeLengthMeasure(data); + case 611: return new ::Ifc4::IfcNormalisedRatioMeasure(data); + case 613: return new ::Ifc4::IfcNumericMeasure(data); + case 614: return new ::Ifc4::IfcObject(data); + case 615: return new ::Ifc4::IfcObjectDefinition(data); + case 616: return new ::Ifc4::IfcObjective(data); + case 618: return new ::Ifc4::IfcObjectPlacement(data); + case 621: return new ::Ifc4::IfcOccupant(data); + case 623: return new ::Ifc4::IfcOffsetCurve2D(data); + case 624: return new ::Ifc4::IfcOffsetCurve3D(data); + case 625: return new ::Ifc4::IfcOpeningElement(data); + case 627: return new ::Ifc4::IfcOpeningStandardCase(data); + case 628: return new ::Ifc4::IfcOpenShell(data); + case 629: return new ::Ifc4::IfcOrganization(data); + case 630: return new ::Ifc4::IfcOrganizationRelationship(data); + case 631: return new ::Ifc4::IfcOrientedEdge(data); + case 632: return new ::Ifc4::IfcOuterBoundaryCurve(data); + case 633: return new ::Ifc4::IfcOutlet(data); + case 634: return new ::Ifc4::IfcOutletType(data); + case 636: return new ::Ifc4::IfcOwnerHistory(data); + case 637: return new ::Ifc4::IfcParameterizedProfileDef(data); + case 638: return new ::Ifc4::IfcParameterValue(data); + case 639: return new ::Ifc4::IfcPath(data); + case 640: return new ::Ifc4::IfcPcurve(data); + case 641: return new ::Ifc4::IfcPerformanceHistory(data); + case 644: return new ::Ifc4::IfcPermeableCoveringProperties(data); + case 645: return new ::Ifc4::IfcPermit(data); + case 647: return new ::Ifc4::IfcPerson(data); + case 648: return new ::Ifc4::IfcPersonAndOrganization(data); + case 649: return new ::Ifc4::IfcPHMeasure(data); + case 650: return new ::Ifc4::IfcPhysicalComplexQuantity(data); + case 652: return new ::Ifc4::IfcPhysicalQuantity(data); + case 653: return new ::Ifc4::IfcPhysicalSimpleQuantity(data); + case 654: return new ::Ifc4::IfcPile(data); + case 656: return new ::Ifc4::IfcPileType(data); + case 658: return new ::Ifc4::IfcPipeFitting(data); + case 659: return new ::Ifc4::IfcPipeFittingType(data); + case 661: return new ::Ifc4::IfcPipeSegment(data); + case 662: return new ::Ifc4::IfcPipeSegmentType(data); + case 664: return new ::Ifc4::IfcPixelTexture(data); + case 665: return new ::Ifc4::IfcPlacement(data); + case 666: return new ::Ifc4::IfcPlanarBox(data); + case 667: return new ::Ifc4::IfcPlanarExtent(data); + case 668: return new ::Ifc4::IfcPlanarForceMeasure(data); + case 669: return new ::Ifc4::IfcPlane(data); + case 670: return new ::Ifc4::IfcPlaneAngleMeasure(data); + case 671: return new ::Ifc4::IfcPlate(data); + case 672: return new ::Ifc4::IfcPlateStandardCase(data); + case 673: return new ::Ifc4::IfcPlateType(data); + case 675: return new ::Ifc4::IfcPoint(data); + case 676: return new ::Ifc4::IfcPointOnCurve(data); + case 677: return new ::Ifc4::IfcPointOnSurface(data); + case 679: return new ::Ifc4::IfcPolygonalBoundedHalfSpace(data); + case 680: return new ::Ifc4::IfcPolygonalFaceSet(data); + case 681: return new ::Ifc4::IfcPolyline(data); + case 682: return new ::Ifc4::IfcPolyLoop(data); + case 683: return new ::Ifc4::IfcPort(data); + case 684: return new ::Ifc4::IfcPositiveInteger(data); + case 685: return new ::Ifc4::IfcPositiveLengthMeasure(data); + case 686: return new ::Ifc4::IfcPositivePlaneAngleMeasure(data); + case 687: return new ::Ifc4::IfcPositiveRatioMeasure(data); + case 688: return new ::Ifc4::IfcPostalAddress(data); + case 689: return new ::Ifc4::IfcPowerMeasure(data); + case 690: return new ::Ifc4::IfcPreDefinedColour(data); + case 691: return new ::Ifc4::IfcPreDefinedCurveFont(data); + case 692: return new ::Ifc4::IfcPreDefinedItem(data); + case 693: return new ::Ifc4::IfcPreDefinedProperties(data); + case 694: return new ::Ifc4::IfcPreDefinedPropertySet(data); + case 695: return new ::Ifc4::IfcPreDefinedTextFont(data); + case 697: return new ::Ifc4::IfcPresentableText(data); + case 698: return new ::Ifc4::IfcPresentationItem(data); + case 699: return new ::Ifc4::IfcPresentationLayerAssignment(data); + case 700: return new ::Ifc4::IfcPresentationLayerWithStyle(data); + case 701: return new ::Ifc4::IfcPresentationStyle(data); + case 702: return new ::Ifc4::IfcPresentationStyleAssignment(data); + case 704: return new ::Ifc4::IfcPressureMeasure(data); + case 705: return new ::Ifc4::IfcProcedure(data); + case 706: return new ::Ifc4::IfcProcedureType(data); + case 708: return new ::Ifc4::IfcProcess(data); + case 710: return new ::Ifc4::IfcProduct(data); + case 711: return new ::Ifc4::IfcProductDefinitionShape(data); + case 712: return new ::Ifc4::IfcProductRepresentation(data); + case 715: return new ::Ifc4::IfcProfileDef(data); + case 716: return new ::Ifc4::IfcProfileProperties(data); + case 718: return new ::Ifc4::IfcProject(data); + case 719: return new ::Ifc4::IfcProjectedCRS(data); + case 721: return new ::Ifc4::IfcProjectionElement(data); + case 723: return new ::Ifc4::IfcProjectLibrary(data); + case 724: return new ::Ifc4::IfcProjectOrder(data); + case 726: return new ::Ifc4::IfcProperty(data); + case 727: return new ::Ifc4::IfcPropertyAbstraction(data); + case 728: return new ::Ifc4::IfcPropertyBoundedValue(data); + case 729: return new ::Ifc4::IfcPropertyDefinition(data); + case 730: return new ::Ifc4::IfcPropertyDependencyRelationship(data); + case 731: return new ::Ifc4::IfcPropertyEnumeratedValue(data); + case 732: return new ::Ifc4::IfcPropertyEnumeration(data); + case 733: return new ::Ifc4::IfcPropertyListValue(data); + case 734: return new ::Ifc4::IfcPropertyReferenceValue(data); + case 735: return new ::Ifc4::IfcPropertySet(data); + case 736: return new ::Ifc4::IfcPropertySetDefinition(data); + case 738: return new ::Ifc4::IfcPropertySetDefinitionSet(data); + case 739: return new ::Ifc4::IfcPropertySetTemplate(data); + case 741: return new ::Ifc4::IfcPropertySingleValue(data); + case 742: return new ::Ifc4::IfcPropertyTableValue(data); + case 743: return new ::Ifc4::IfcPropertyTemplate(data); + case 744: return new ::Ifc4::IfcPropertyTemplateDefinition(data); + case 745: return new ::Ifc4::IfcProtectiveDevice(data); + case 746: return new ::Ifc4::IfcProtectiveDeviceTrippingUnit(data); + case 747: return new ::Ifc4::IfcProtectiveDeviceTrippingUnitType(data); + case 749: return new ::Ifc4::IfcProtectiveDeviceType(data); + case 751: return new ::Ifc4::IfcProxy(data); + case 752: return new ::Ifc4::IfcPump(data); + case 753: return new ::Ifc4::IfcPumpType(data); + case 755: return new ::Ifc4::IfcQuantityArea(data); + case 756: return new ::Ifc4::IfcQuantityCount(data); + case 757: return new ::Ifc4::IfcQuantityLength(data); + case 758: return new ::Ifc4::IfcQuantitySet(data); + case 759: return new ::Ifc4::IfcQuantityTime(data); + case 760: return new ::Ifc4::IfcQuantityVolume(data); + case 761: return new ::Ifc4::IfcQuantityWeight(data); + case 762: return new ::Ifc4::IfcRadioActivityMeasure(data); + case 763: return new ::Ifc4::IfcRailing(data); + case 764: return new ::Ifc4::IfcRailingType(data); + case 766: return new ::Ifc4::IfcRamp(data); + case 767: return new ::Ifc4::IfcRampFlight(data); + case 768: return new ::Ifc4::IfcRampFlightType(data); + case 770: return new ::Ifc4::IfcRampType(data); + case 772: return new ::Ifc4::IfcRatioMeasure(data); + case 773: return new ::Ifc4::IfcRationalBSplineCurveWithKnots(data); + case 774: return new ::Ifc4::IfcRationalBSplineSurfaceWithKnots(data); + case 775: return new ::Ifc4::IfcReal(data); + case 776: return new ::Ifc4::IfcRectangleHollowProfileDef(data); + case 777: return new ::Ifc4::IfcRectangleProfileDef(data); + case 778: return new ::Ifc4::IfcRectangularPyramid(data); + case 779: return new ::Ifc4::IfcRectangularTrimmedSurface(data); + case 780: return new ::Ifc4::IfcRecurrencePattern(data); + case 782: return new ::Ifc4::IfcReference(data); + case 784: return new ::Ifc4::IfcRegularTimeSeries(data); + case 785: return new ::Ifc4::IfcReinforcementBarProperties(data); + case 786: return new ::Ifc4::IfcReinforcementDefinitionProperties(data); + case 787: return new ::Ifc4::IfcReinforcingBar(data); + case 790: return new ::Ifc4::IfcReinforcingBarType(data); + case 792: return new ::Ifc4::IfcReinforcingElement(data); + case 793: return new ::Ifc4::IfcReinforcingElementType(data); + case 794: return new ::Ifc4::IfcReinforcingMesh(data); + case 795: return new ::Ifc4::IfcReinforcingMeshType(data); + case 797: return new ::Ifc4::IfcRelAggregates(data); + case 798: return new ::Ifc4::IfcRelAssigns(data); + case 799: return new ::Ifc4::IfcRelAssignsToActor(data); + case 800: return new ::Ifc4::IfcRelAssignsToControl(data); + case 801: return new ::Ifc4::IfcRelAssignsToGroup(data); + case 802: return new ::Ifc4::IfcRelAssignsToGroupByFactor(data); + case 803: return new ::Ifc4::IfcRelAssignsToProcess(data); + case 804: return new ::Ifc4::IfcRelAssignsToProduct(data); + case 805: return new ::Ifc4::IfcRelAssignsToResource(data); + case 806: return new ::Ifc4::IfcRelAssociates(data); + case 807: return new ::Ifc4::IfcRelAssociatesApproval(data); + case 808: return new ::Ifc4::IfcRelAssociatesClassification(data); + case 809: return new ::Ifc4::IfcRelAssociatesConstraint(data); + case 810: return new ::Ifc4::IfcRelAssociatesDocument(data); + case 811: return new ::Ifc4::IfcRelAssociatesLibrary(data); + case 812: return new ::Ifc4::IfcRelAssociatesMaterial(data); + case 813: return new ::Ifc4::IfcRelationship(data); + case 814: return new ::Ifc4::IfcRelConnects(data); + case 815: return new ::Ifc4::IfcRelConnectsElements(data); + case 816: return new ::Ifc4::IfcRelConnectsPathElements(data); + case 817: return new ::Ifc4::IfcRelConnectsPorts(data); + case 818: return new ::Ifc4::IfcRelConnectsPortToElement(data); + case 819: return new ::Ifc4::IfcRelConnectsStructuralActivity(data); + case 820: return new ::Ifc4::IfcRelConnectsStructuralMember(data); + case 821: return new ::Ifc4::IfcRelConnectsWithEccentricity(data); + case 822: return new ::Ifc4::IfcRelConnectsWithRealizingElements(data); + case 823: return new ::Ifc4::IfcRelContainedInSpatialStructure(data); + case 824: return new ::Ifc4::IfcRelCoversBldgElements(data); + case 825: return new ::Ifc4::IfcRelCoversSpaces(data); + case 826: return new ::Ifc4::IfcRelDeclares(data); + case 827: return new ::Ifc4::IfcRelDecomposes(data); + case 828: return new ::Ifc4::IfcRelDefines(data); + case 829: return new ::Ifc4::IfcRelDefinesByObject(data); + case 830: return new ::Ifc4::IfcRelDefinesByProperties(data); + case 831: return new ::Ifc4::IfcRelDefinesByTemplate(data); + case 832: return new ::Ifc4::IfcRelDefinesByType(data); + case 833: return new ::Ifc4::IfcRelFillsElement(data); + case 834: return new ::Ifc4::IfcRelFlowControlElements(data); + case 835: return new ::Ifc4::IfcRelInterferesElements(data); + case 836: return new ::Ifc4::IfcRelNests(data); + case 837: return new ::Ifc4::IfcRelProjectsElement(data); + case 838: return new ::Ifc4::IfcRelReferencedInSpatialStructure(data); + case 839: return new ::Ifc4::IfcRelSequence(data); + case 840: return new ::Ifc4::IfcRelServicesBuildings(data); + case 841: return new ::Ifc4::IfcRelSpaceBoundary(data); + case 842: return new ::Ifc4::IfcRelSpaceBoundary1stLevel(data); + case 843: return new ::Ifc4::IfcRelSpaceBoundary2ndLevel(data); + case 844: return new ::Ifc4::IfcRelVoidsElement(data); + case 845: return new ::Ifc4::IfcReparametrisedCompositeCurveSegment(data); + case 846: return new ::Ifc4::IfcRepresentation(data); + case 847: return new ::Ifc4::IfcRepresentationContext(data); + case 848: return new ::Ifc4::IfcRepresentationItem(data); + case 849: return new ::Ifc4::IfcRepresentationMap(data); + case 850: return new ::Ifc4::IfcResource(data); + case 851: return new ::Ifc4::IfcResourceApprovalRelationship(data); + case 852: return new ::Ifc4::IfcResourceConstraintRelationship(data); + case 853: return new ::Ifc4::IfcResourceLevelRelationship(data); + case 856: return new ::Ifc4::IfcResourceTime(data); + case 857: return new ::Ifc4::IfcRevolvedAreaSolid(data); + case 858: return new ::Ifc4::IfcRevolvedAreaSolidTapered(data); + case 859: return new ::Ifc4::IfcRightCircularCone(data); + case 860: return new ::Ifc4::IfcRightCircularCylinder(data); + case 862: return new ::Ifc4::IfcRoof(data); + case 863: return new ::Ifc4::IfcRoofType(data); + case 865: return new ::Ifc4::IfcRoot(data); + case 866: return new ::Ifc4::IfcRotationalFrequencyMeasure(data); + case 867: return new ::Ifc4::IfcRotationalMassMeasure(data); + case 868: return new ::Ifc4::IfcRotationalStiffnessMeasure(data); + case 870: return new ::Ifc4::IfcRoundedRectangleProfileDef(data); + case 871: return new ::Ifc4::IfcSanitaryTerminal(data); + case 872: return new ::Ifc4::IfcSanitaryTerminalType(data); + case 874: return new ::Ifc4::IfcSchedulingTime(data); + case 875: return new ::Ifc4::IfcSeamCurve(data); + case 876: return new ::Ifc4::IfcSectionalAreaIntegralMeasure(data); + case 877: return new ::Ifc4::IfcSectionedSpine(data); + case 878: return new ::Ifc4::IfcSectionModulusMeasure(data); + case 879: return new ::Ifc4::IfcSectionProperties(data); + case 880: return new ::Ifc4::IfcSectionReinforcementProperties(data); + case 883: return new ::Ifc4::IfcSensor(data); + case 884: return new ::Ifc4::IfcSensorType(data); + case 887: return new ::Ifc4::IfcShadingDevice(data); + case 888: return new ::Ifc4::IfcShadingDeviceType(data); + case 890: return new ::Ifc4::IfcShapeAspect(data); + case 891: return new ::Ifc4::IfcShapeModel(data); + case 892: return new ::Ifc4::IfcShapeRepresentation(data); + case 893: return new ::Ifc4::IfcShearModulusMeasure(data); + case 895: return new ::Ifc4::IfcShellBasedSurfaceModel(data); + case 896: return new ::Ifc4::IfcSimpleProperty(data); + case 897: return new ::Ifc4::IfcSimplePropertyTemplate(data); + case 901: return new ::Ifc4::IfcSite(data); + case 902: return new ::Ifc4::IfcSIUnit(data); + case 905: return new ::Ifc4::IfcSlab(data); + case 906: return new ::Ifc4::IfcSlabElementedCase(data); + case 907: return new ::Ifc4::IfcSlabStandardCase(data); + case 908: return new ::Ifc4::IfcSlabType(data); + case 910: return new ::Ifc4::IfcSlippageConnectionCondition(data); + case 911: return new ::Ifc4::IfcSolarDevice(data); + case 912: return new ::Ifc4::IfcSolarDeviceType(data); + case 914: return new ::Ifc4::IfcSolidAngleMeasure(data); + case 915: return new ::Ifc4::IfcSolidModel(data); + case 917: return new ::Ifc4::IfcSoundPowerLevelMeasure(data); + case 918: return new ::Ifc4::IfcSoundPowerMeasure(data); + case 919: return new ::Ifc4::IfcSoundPressureLevelMeasure(data); + case 920: return new ::Ifc4::IfcSoundPressureMeasure(data); + case 921: return new ::Ifc4::IfcSpace(data); + case 923: return new ::Ifc4::IfcSpaceHeater(data); + case 924: return new ::Ifc4::IfcSpaceHeaterType(data); + case 926: return new ::Ifc4::IfcSpaceType(data); + case 928: return new ::Ifc4::IfcSpatialElement(data); + case 929: return new ::Ifc4::IfcSpatialElementType(data); + case 930: return new ::Ifc4::IfcSpatialStructureElement(data); + case 931: return new ::Ifc4::IfcSpatialStructureElementType(data); + case 932: return new ::Ifc4::IfcSpatialZone(data); + case 933: return new ::Ifc4::IfcSpatialZoneType(data); + case 935: return new ::Ifc4::IfcSpecificHeatCapacityMeasure(data); + case 936: return new ::Ifc4::IfcSpecularExponent(data); + case 938: return new ::Ifc4::IfcSpecularRoughness(data); + case 939: return new ::Ifc4::IfcSphere(data); + case 940: return new ::Ifc4::IfcSphericalSurface(data); + case 941: return new ::Ifc4::IfcStackTerminal(data); + case 942: return new ::Ifc4::IfcStackTerminalType(data); + case 944: return new ::Ifc4::IfcStair(data); + case 945: return new ::Ifc4::IfcStairFlight(data); + case 946: return new ::Ifc4::IfcStairFlightType(data); + case 948: return new ::Ifc4::IfcStairType(data); + case 951: return new ::Ifc4::IfcStructuralAction(data); + case 952: return new ::Ifc4::IfcStructuralActivity(data); + case 954: return new ::Ifc4::IfcStructuralAnalysisModel(data); + case 955: return new ::Ifc4::IfcStructuralConnection(data); + case 956: return new ::Ifc4::IfcStructuralConnectionCondition(data); + case 957: return new ::Ifc4::IfcStructuralCurveAction(data); + case 959: return new ::Ifc4::IfcStructuralCurveConnection(data); + case 960: return new ::Ifc4::IfcStructuralCurveMember(data); + case 962: return new ::Ifc4::IfcStructuralCurveMemberVarying(data); + case 963: return new ::Ifc4::IfcStructuralCurveReaction(data); + case 964: return new ::Ifc4::IfcStructuralItem(data); + case 965: return new ::Ifc4::IfcStructuralLinearAction(data); + case 966: return new ::Ifc4::IfcStructuralLoad(data); + case 967: return new ::Ifc4::IfcStructuralLoadCase(data); + case 968: return new ::Ifc4::IfcStructuralLoadConfiguration(data); + case 969: return new ::Ifc4::IfcStructuralLoadGroup(data); + case 970: return new ::Ifc4::IfcStructuralLoadLinearForce(data); + case 971: return new ::Ifc4::IfcStructuralLoadOrResult(data); + case 972: return new ::Ifc4::IfcStructuralLoadPlanarForce(data); + case 973: return new ::Ifc4::IfcStructuralLoadSingleDisplacement(data); + case 974: return new ::Ifc4::IfcStructuralLoadSingleDisplacementDistortion(data); + case 975: return new ::Ifc4::IfcStructuralLoadSingleForce(data); + case 976: return new ::Ifc4::IfcStructuralLoadSingleForceWarping(data); + case 977: return new ::Ifc4::IfcStructuralLoadStatic(data); + case 978: return new ::Ifc4::IfcStructuralLoadTemperature(data); + case 979: return new ::Ifc4::IfcStructuralMember(data); + case 980: return new ::Ifc4::IfcStructuralPlanarAction(data); + case 981: return new ::Ifc4::IfcStructuralPointAction(data); + case 982: return new ::Ifc4::IfcStructuralPointConnection(data); + case 983: return new ::Ifc4::IfcStructuralPointReaction(data); + case 984: return new ::Ifc4::IfcStructuralReaction(data); + case 985: return new ::Ifc4::IfcStructuralResultGroup(data); + case 986: return new ::Ifc4::IfcStructuralSurfaceAction(data); + case 988: return new ::Ifc4::IfcStructuralSurfaceConnection(data); + case 989: return new ::Ifc4::IfcStructuralSurfaceMember(data); + case 991: return new ::Ifc4::IfcStructuralSurfaceMemberVarying(data); + case 992: return new ::Ifc4::IfcStructuralSurfaceReaction(data); + case 994: return new ::Ifc4::IfcStyledItem(data); + case 995: return new ::Ifc4::IfcStyledRepresentation(data); + case 996: return new ::Ifc4::IfcStyleModel(data); + case 997: return new ::Ifc4::IfcSubContractResource(data); + case 998: return new ::Ifc4::IfcSubContractResourceType(data); + case 1000: return new ::Ifc4::IfcSubedge(data); + case 1001: return new ::Ifc4::IfcSurface(data); + case 1002: return new ::Ifc4::IfcSurfaceCurve(data); + case 1003: return new ::Ifc4::IfcSurfaceCurveSweptAreaSolid(data); + case 1004: return new ::Ifc4::IfcSurfaceFeature(data); + case 1006: return new ::Ifc4::IfcSurfaceOfLinearExtrusion(data); + case 1007: return new ::Ifc4::IfcSurfaceOfRevolution(data); + case 1009: return new ::Ifc4::IfcSurfaceReinforcementArea(data); + case 1011: return new ::Ifc4::IfcSurfaceStyle(data); + case 1013: return new ::Ifc4::IfcSurfaceStyleLighting(data); + case 1014: return new ::Ifc4::IfcSurfaceStyleRefraction(data); + case 1015: return new ::Ifc4::IfcSurfaceStyleRendering(data); + case 1016: return new ::Ifc4::IfcSurfaceStyleShading(data); + case 1017: return new ::Ifc4::IfcSurfaceStyleWithTextures(data); + case 1018: return new ::Ifc4::IfcSurfaceTexture(data); + case 1019: return new ::Ifc4::IfcSweptAreaSolid(data); + case 1020: return new ::Ifc4::IfcSweptDiskSolid(data); + case 1021: return new ::Ifc4::IfcSweptDiskSolidPolygonal(data); + case 1022: return new ::Ifc4::IfcSweptSurface(data); + case 1023: return new ::Ifc4::IfcSwitchingDevice(data); + case 1024: return new ::Ifc4::IfcSwitchingDeviceType(data); + case 1026: return new ::Ifc4::IfcSystem(data); + case 1027: return new ::Ifc4::IfcSystemFurnitureElement(data); + case 1028: return new ::Ifc4::IfcSystemFurnitureElementType(data); + case 1030: return new ::Ifc4::IfcTable(data); + case 1031: return new ::Ifc4::IfcTableColumn(data); + case 1032: return new ::Ifc4::IfcTableRow(data); + case 1033: return new ::Ifc4::IfcTank(data); + case 1034: return new ::Ifc4::IfcTankType(data); + case 1036: return new ::Ifc4::IfcTask(data); + case 1038: return new ::Ifc4::IfcTaskTime(data); + case 1039: return new ::Ifc4::IfcTaskTimeRecurring(data); + case 1040: return new ::Ifc4::IfcTaskType(data); + case 1042: return new ::Ifc4::IfcTelecomAddress(data); + case 1043: return new ::Ifc4::IfcTemperatureGradientMeasure(data); + case 1044: return new ::Ifc4::IfcTemperatureRateOfChangeMeasure(data); + case 1045: return new ::Ifc4::IfcTendon(data); + case 1046: return new ::Ifc4::IfcTendonAnchor(data); + case 1047: return new ::Ifc4::IfcTendonAnchorType(data); + case 1049: return new ::Ifc4::IfcTendonType(data); + case 1051: return new ::Ifc4::IfcTessellatedFaceSet(data); + case 1052: return new ::Ifc4::IfcTessellatedItem(data); + case 1053: return new ::Ifc4::IfcText(data); + case 1054: return new ::Ifc4::IfcTextAlignment(data); + case 1055: return new ::Ifc4::IfcTextDecoration(data); + case 1056: return new ::Ifc4::IfcTextFontName(data); + case 1058: return new ::Ifc4::IfcTextLiteral(data); + case 1059: return new ::Ifc4::IfcTextLiteralWithExtent(data); + case 1061: return new ::Ifc4::IfcTextStyle(data); + case 1062: return new ::Ifc4::IfcTextStyleFontModel(data); + case 1063: return new ::Ifc4::IfcTextStyleForDefinedFont(data); + case 1064: return new ::Ifc4::IfcTextStyleTextModel(data); + case 1065: return new ::Ifc4::IfcTextTransformation(data); + case 1066: return new ::Ifc4::IfcTextureCoordinate(data); + case 1067: return new ::Ifc4::IfcTextureCoordinateGenerator(data); + case 1068: return new ::Ifc4::IfcTextureMap(data); + case 1069: return new ::Ifc4::IfcTextureVertex(data); + case 1070: return new ::Ifc4::IfcTextureVertexList(data); + case 1071: return new ::Ifc4::IfcThermalAdmittanceMeasure(data); + case 1072: return new ::Ifc4::IfcThermalConductivityMeasure(data); + case 1073: return new ::Ifc4::IfcThermalExpansionCoefficientMeasure(data); + case 1074: return new ::Ifc4::IfcThermalResistanceMeasure(data); + case 1075: return new ::Ifc4::IfcThermalTransmittanceMeasure(data); + case 1076: return new ::Ifc4::IfcThermodynamicTemperatureMeasure(data); + case 1077: return new ::Ifc4::IfcTime(data); + case 1078: return new ::Ifc4::IfcTimeMeasure(data); + case 1080: return new ::Ifc4::IfcTimePeriod(data); + case 1081: return new ::Ifc4::IfcTimeSeries(data); + case 1083: return new ::Ifc4::IfcTimeSeriesValue(data); + case 1084: return new ::Ifc4::IfcTimeStamp(data); + case 1085: return new ::Ifc4::IfcTopologicalRepresentationItem(data); + case 1086: return new ::Ifc4::IfcTopologyRepresentation(data); + case 1087: return new ::Ifc4::IfcToroidalSurface(data); + case 1088: return new ::Ifc4::IfcTorqueMeasure(data); + case 1089: return new ::Ifc4::IfcTransformer(data); + case 1090: return new ::Ifc4::IfcTransformerType(data); + case 1094: return new ::Ifc4::IfcTransportElement(data); + case 1095: return new ::Ifc4::IfcTransportElementType(data); + case 1097: return new ::Ifc4::IfcTrapeziumProfileDef(data); + case 1098: return new ::Ifc4::IfcTriangulatedFaceSet(data); + case 1099: return new ::Ifc4::IfcTrimmedCurve(data); + case 1102: return new ::Ifc4::IfcTShapeProfileDef(data); + case 1103: return new ::Ifc4::IfcTubeBundle(data); + case 1104: return new ::Ifc4::IfcTubeBundleType(data); + case 1106: return new ::Ifc4::IfcTypeObject(data); + case 1107: return new ::Ifc4::IfcTypeProcess(data); + case 1108: return new ::Ifc4::IfcTypeProduct(data); + case 1109: return new ::Ifc4::IfcTypeResource(data); + case 1111: return new ::Ifc4::IfcUnitaryControlElement(data); + case 1112: return new ::Ifc4::IfcUnitaryControlElementType(data); + case 1114: return new ::Ifc4::IfcUnitaryEquipment(data); + case 1115: return new ::Ifc4::IfcUnitaryEquipmentType(data); + case 1117: return new ::Ifc4::IfcUnitAssignment(data); + case 1119: return new ::Ifc4::IfcURIReference(data); + case 1120: return new ::Ifc4::IfcUShapeProfileDef(data); + case 1122: return new ::Ifc4::IfcValve(data); + case 1123: return new ::Ifc4::IfcValveType(data); + case 1125: return new ::Ifc4::IfcVaporPermeabilityMeasure(data); + case 1126: return new ::Ifc4::IfcVector(data); + case 1128: return new ::Ifc4::IfcVertex(data); + case 1129: return new ::Ifc4::IfcVertexLoop(data); + case 1130: return new ::Ifc4::IfcVertexPoint(data); + case 1131: return new ::Ifc4::IfcVibrationIsolator(data); + case 1132: return new ::Ifc4::IfcVibrationIsolatorType(data); + case 1134: return new ::Ifc4::IfcVirtualElement(data); + case 1135: return new ::Ifc4::IfcVirtualGridIntersection(data); + case 1136: return new ::Ifc4::IfcVoidingFeature(data); + case 1138: return new ::Ifc4::IfcVolumeMeasure(data); + case 1139: return new ::Ifc4::IfcVolumetricFlowRateMeasure(data); + case 1140: return new ::Ifc4::IfcWall(data); + case 1141: return new ::Ifc4::IfcWallElementedCase(data); + case 1142: return new ::Ifc4::IfcWallStandardCase(data); + case 1143: return new ::Ifc4::IfcWallType(data); + case 1145: return new ::Ifc4::IfcWarpingConstantMeasure(data); + case 1146: return new ::Ifc4::IfcWarpingMomentMeasure(data); + case 1148: return new ::Ifc4::IfcWasteTerminal(data); + case 1149: return new ::Ifc4::IfcWasteTerminalType(data); + case 1151: return new ::Ifc4::IfcWindow(data); + case 1152: return new ::Ifc4::IfcWindowLiningProperties(data); + case 1155: return new ::Ifc4::IfcWindowPanelProperties(data); + case 1156: return new ::Ifc4::IfcWindowStandardCase(data); + case 1157: return new ::Ifc4::IfcWindowStyle(data); + case 1160: return new ::Ifc4::IfcWindowType(data); + case 1163: return new ::Ifc4::IfcWorkCalendar(data); + case 1165: return new ::Ifc4::IfcWorkControl(data); + case 1166: return new ::Ifc4::IfcWorkPlan(data); + case 1168: return new ::Ifc4::IfcWorkSchedule(data); + case 1170: return new ::Ifc4::IfcWorkTime(data); + case 1171: return new ::Ifc4::IfcZone(data); + case 1172: return new ::Ifc4::IfcZShapeProfileDef(data); default: throw IfcParse::IfcException(data->type()->name() + " cannot be instantiated"); } @@ -2365,11 +2380,12 @@ IfcParse::schema_definition* IFC4_populate_schema() { IFC4_IfcBuildingElementPartTypeEnum_type = new enumeration_type("IfcBuildingElementPartTypeEnum", 95, items); } { - std::vector items; items.reserve(6); + std::vector items; items.reserve(7); items.push_back("COMPLEX"); items.push_back("ELEMENT"); items.push_back("NOTDEFINED"); items.push_back("PARTIAL"); + items.push_back("PROVISIONFORSPACE"); items.push_back("PROVISIONFORVOID"); items.push_back("USERDEFINED"); IFC4_IfcBuildingElementProxyTypeEnum_type = new enumeration_type("IfcBuildingElementProxyTypeEnum", 98, items); @@ -3159,7 +3175,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("EXTERNAL_EARTH"); items.push_back("EXTERNAL_FIRE"); items.push_back("EXTERNAL_WATER"); - items.push_back("NOTDEFIEND"); + items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); IFC4_IfcExternalSpatialElementTypeEnum_type = new enumeration_type("IfcExternalSpatialElementTypeEnum", 382, items); } @@ -3337,9 +3353,9 @@ IfcParse::schema_definition* IFC4_populate_schema() { } IFC4_IfcIdentifier_type = new type_declaration("IfcIdentifier", 476, new simple_type(simple_type::string_type)); IFC4_IfcIlluminanceMeasure_type = new type_declaration("IfcIlluminanceMeasure", 477, new simple_type(simple_type::real_type)); - IFC4_IfcInductanceMeasure_type = new type_declaration("IfcInductanceMeasure", 483, new simple_type(simple_type::real_type)); - IFC4_IfcInteger_type = new type_declaration("IfcInteger", 484, new simple_type(simple_type::integer_type)); - IFC4_IfcIntegerCountRateMeasure_type = new type_declaration("IfcIntegerCountRateMeasure", 485, new simple_type(simple_type::integer_type)); + IFC4_IfcInductanceMeasure_type = new type_declaration("IfcInductanceMeasure", 485, new simple_type(simple_type::real_type)); + IFC4_IfcInteger_type = new type_declaration("IfcInteger", 486, new simple_type(simple_type::integer_type)); + IFC4_IfcIntegerCountRateMeasure_type = new type_declaration("IfcIntegerCountRateMeasure", 487, new simple_type(simple_type::integer_type)); { std::vector items; items.reserve(6); items.push_back("CYCLONIC"); @@ -3348,7 +3364,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("OIL"); items.push_back("PETROL"); items.push_back("USERDEFINED"); - IFC4_IfcInterceptorTypeEnum_type = new enumeration_type("IfcInterceptorTypeEnum", 488, items); + IFC4_IfcInterceptorTypeEnum_type = new enumeration_type("IfcInterceptorTypeEnum", 490, items); } { std::vector items; items.reserve(6); @@ -3358,7 +3374,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("EXTERNAL_WATER"); items.push_back("INTERNAL"); items.push_back("NOTDEFINED"); - IFC4_IfcInternalOrExternalEnum_type = new enumeration_type("IfcInternalOrExternalEnum", 489, items); + IFC4_IfcInternalOrExternalEnum_type = new enumeration_type("IfcInternalOrExternalEnum", 491, items); } { std::vector items; items.reserve(5); @@ -3367,28 +3383,28 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SPACEINVENTORY"); items.push_back("USERDEFINED"); - IFC4_IfcInventoryTypeEnum_type = new enumeration_type("IfcInventoryTypeEnum", 491, items); + IFC4_IfcInventoryTypeEnum_type = new enumeration_type("IfcInventoryTypeEnum", 494, items); } - IFC4_IfcIonConcentrationMeasure_type = new type_declaration("IfcIonConcentrationMeasure", 492, new simple_type(simple_type::real_type)); - IFC4_IfcIsothermalMoistureCapacityMeasure_type = new type_declaration("IfcIsothermalMoistureCapacityMeasure", 496, new simple_type(simple_type::real_type)); + IFC4_IfcIonConcentrationMeasure_type = new type_declaration("IfcIonConcentrationMeasure", 495, new simple_type(simple_type::real_type)); + IFC4_IfcIsothermalMoistureCapacityMeasure_type = new type_declaration("IfcIsothermalMoistureCapacityMeasure", 499, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(4); items.push_back("DATA"); items.push_back("NOTDEFINED"); items.push_back("POWER"); items.push_back("USERDEFINED"); - IFC4_IfcJunctionBoxTypeEnum_type = new enumeration_type("IfcJunctionBoxTypeEnum", 499, items); + IFC4_IfcJunctionBoxTypeEnum_type = new enumeration_type("IfcJunctionBoxTypeEnum", 502, items); } - IFC4_IfcKinematicViscosityMeasure_type = new type_declaration("IfcKinematicViscosityMeasure", 500, new simple_type(simple_type::real_type)); + IFC4_IfcKinematicViscosityMeasure_type = new type_declaration("IfcKinematicViscosityMeasure", 503, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(4); items.push_back("PIECEWISE_BEZIER_KNOTS"); items.push_back("QUASI_UNIFORM_KNOTS"); items.push_back("UNIFORM_KNOTS"); items.push_back("UNSPECIFIED"); - IFC4_IfcKnotType_type = new enumeration_type("IfcKnotType", 501, items); + IFC4_IfcKnotType_type = new enumeration_type("IfcKnotType", 504, items); } - IFC4_IfcLabel_type = new type_declaration("IfcLabel", 502, new simple_type(simple_type::string_type)); + IFC4_IfcLabel_type = new type_declaration("IfcLabel", 505, new simple_type(simple_type::string_type)); { std::vector items; items.reserve(21); items.push_back("ADMINISTRATION"); @@ -3412,7 +3428,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("STEELWORK"); items.push_back("SURVEYING"); items.push_back("USERDEFINED"); - IFC4_IfcLaborResourceTypeEnum_type = new enumeration_type("IfcLaborResourceTypeEnum", 505, items); + IFC4_IfcLaborResourceTypeEnum_type = new enumeration_type("IfcLaborResourceTypeEnum", 508, items); } { std::vector items; items.reserve(11); @@ -3427,24 +3443,24 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("OLED"); items.push_back("TUNGSTENFILAMENT"); items.push_back("USERDEFINED"); - IFC4_IfcLampTypeEnum_type = new enumeration_type("IfcLampTypeEnum", 509, items); + IFC4_IfcLampTypeEnum_type = new enumeration_type("IfcLampTypeEnum", 512, items); } - IFC4_IfcLanguageId_type = new type_declaration("IfcLanguageId", 510, new named_type(IFC4_IfcIdentifier_type)); + IFC4_IfcLanguageId_type = new type_declaration("IfcLanguageId", 513, new named_type(IFC4_IfcIdentifier_type)); { std::vector items; items.reserve(3); items.push_back("AXIS1"); items.push_back("AXIS2"); items.push_back("AXIS3"); - IFC4_IfcLayerSetDirectionEnum_type = new enumeration_type("IfcLayerSetDirectionEnum", 512, items); + IFC4_IfcLayerSetDirectionEnum_type = new enumeration_type("IfcLayerSetDirectionEnum", 515, items); } - IFC4_IfcLengthMeasure_type = new type_declaration("IfcLengthMeasure", 513, new simple_type(simple_type::real_type)); + IFC4_IfcLengthMeasure_type = new type_declaration("IfcLengthMeasure", 516, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(4); items.push_back("NOTDEFINED"); items.push_back("TYPE_A"); items.push_back("TYPE_B"); items.push_back("TYPE_C"); - IFC4_IfcLightDistributionCurveEnum_type = new enumeration_type("IfcLightDistributionCurveEnum", 517, items); + IFC4_IfcLightDistributionCurveEnum_type = new enumeration_type("IfcLightDistributionCurveEnum", 520, items); } { std::vector items; items.reserve(11); @@ -3459,7 +3475,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("METALHALIDE"); items.push_back("NOTDEFINED"); items.push_back("TUNGSTENFILAMENT"); - IFC4_IfcLightEmissionSourceEnum_type = new enumeration_type("IfcLightEmissionSourceEnum", 520, items); + IFC4_IfcLightEmissionSourceEnum_type = new enumeration_type("IfcLightEmissionSourceEnum", 523, items); } { std::vector items; items.reserve(5); @@ -3468,12 +3484,12 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("POINTSOURCE"); items.push_back("SECURITYLIGHTING"); items.push_back("USERDEFINED"); - IFC4_IfcLightFixtureTypeEnum_type = new enumeration_type("IfcLightFixtureTypeEnum", 523, items); + IFC4_IfcLightFixtureTypeEnum_type = new enumeration_type("IfcLightFixtureTypeEnum", 526, items); } - IFC4_IfcLinearForceMeasure_type = new type_declaration("IfcLinearForceMeasure", 532, new simple_type(simple_type::real_type)); - IFC4_IfcLinearMomentMeasure_type = new type_declaration("IfcLinearMomentMeasure", 533, new simple_type(simple_type::real_type)); - IFC4_IfcLinearStiffnessMeasure_type = new type_declaration("IfcLinearStiffnessMeasure", 534, new simple_type(simple_type::real_type)); - IFC4_IfcLinearVelocityMeasure_type = new type_declaration("IfcLinearVelocityMeasure", 535, new simple_type(simple_type::real_type)); + IFC4_IfcLinearForceMeasure_type = new type_declaration("IfcLinearForceMeasure", 535, new simple_type(simple_type::real_type)); + IFC4_IfcLinearMomentMeasure_type = new type_declaration("IfcLinearMomentMeasure", 536, new simple_type(simple_type::real_type)); + IFC4_IfcLinearStiffnessMeasure_type = new type_declaration("IfcLinearStiffnessMeasure", 537, new simple_type(simple_type::real_type)); + IFC4_IfcLinearVelocityMeasure_type = new type_declaration("IfcLinearVelocityMeasure", 538, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(5); items.push_back("LOAD_CASE"); @@ -3481,9 +3497,9 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("LOAD_GROUP"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcLoadGroupTypeEnum_type = new enumeration_type("IfcLoadGroupTypeEnum", 537, items); + IFC4_IfcLoadGroupTypeEnum_type = new enumeration_type("IfcLoadGroupTypeEnum", 540, items); } - IFC4_IfcLogical_type = new type_declaration("IfcLogical", 539, new simple_type(simple_type::logical_type)); + IFC4_IfcLogical_type = new type_declaration("IfcLogical", 542, new simple_type(simple_type::logical_type)); { std::vector items; items.reserve(5); items.push_back("LOGICALAND"); @@ -3491,17 +3507,17 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("LOGICALNOTOR"); items.push_back("LOGICALOR"); items.push_back("LOGICALXOR"); - IFC4_IfcLogicalOperatorEnum_type = new enumeration_type("IfcLogicalOperatorEnum", 540, items); + IFC4_IfcLogicalOperatorEnum_type = new enumeration_type("IfcLogicalOperatorEnum", 543, items); } - IFC4_IfcLuminousFluxMeasure_type = new type_declaration("IfcLuminousFluxMeasure", 543, new simple_type(simple_type::real_type)); - IFC4_IfcLuminousIntensityDistributionMeasure_type = new type_declaration("IfcLuminousIntensityDistributionMeasure", 544, new simple_type(simple_type::real_type)); - IFC4_IfcLuminousIntensityMeasure_type = new type_declaration("IfcLuminousIntensityMeasure", 545, new simple_type(simple_type::real_type)); - IFC4_IfcMagneticFluxDensityMeasure_type = new type_declaration("IfcMagneticFluxDensityMeasure", 546, new simple_type(simple_type::real_type)); - IFC4_IfcMagneticFluxMeasure_type = new type_declaration("IfcMagneticFluxMeasure", 547, new simple_type(simple_type::real_type)); - IFC4_IfcMassDensityMeasure_type = new type_declaration("IfcMassDensityMeasure", 551, new simple_type(simple_type::real_type)); - IFC4_IfcMassFlowRateMeasure_type = new type_declaration("IfcMassFlowRateMeasure", 552, new simple_type(simple_type::real_type)); - IFC4_IfcMassMeasure_type = new type_declaration("IfcMassMeasure", 553, new simple_type(simple_type::real_type)); - IFC4_IfcMassPerLengthMeasure_type = new type_declaration("IfcMassPerLengthMeasure", 554, new simple_type(simple_type::real_type)); + IFC4_IfcLuminousFluxMeasure_type = new type_declaration("IfcLuminousFluxMeasure", 546, new simple_type(simple_type::real_type)); + IFC4_IfcLuminousIntensityDistributionMeasure_type = new type_declaration("IfcLuminousIntensityDistributionMeasure", 547, new simple_type(simple_type::real_type)); + IFC4_IfcLuminousIntensityMeasure_type = new type_declaration("IfcLuminousIntensityMeasure", 548, new simple_type(simple_type::real_type)); + IFC4_IfcMagneticFluxDensityMeasure_type = new type_declaration("IfcMagneticFluxDensityMeasure", 549, new simple_type(simple_type::real_type)); + IFC4_IfcMagneticFluxMeasure_type = new type_declaration("IfcMagneticFluxMeasure", 550, new simple_type(simple_type::real_type)); + IFC4_IfcMassDensityMeasure_type = new type_declaration("IfcMassDensityMeasure", 554, new simple_type(simple_type::real_type)); + IFC4_IfcMassFlowRateMeasure_type = new type_declaration("IfcMassFlowRateMeasure", 555, new simple_type(simple_type::real_type)); + IFC4_IfcMassMeasure_type = new type_declaration("IfcMassMeasure", 556, new simple_type(simple_type::real_type)); + IFC4_IfcMassPerLengthMeasure_type = new type_declaration("IfcMassPerLengthMeasure", 557, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(12); items.push_back("ANCHORBOLT"); @@ -3516,7 +3532,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("STAPLE"); items.push_back("STUDSHEARCONNECTOR"); items.push_back("USERDEFINED"); - IFC4_IfcMechanicalFastenerTypeEnum_type = new enumeration_type("IfcMechanicalFastenerTypeEnum", 579, items); + IFC4_IfcMechanicalFastenerTypeEnum_type = new enumeration_type("IfcMechanicalFastenerTypeEnum", 582, items); } { std::vector items; items.reserve(7); @@ -3527,7 +3543,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("OXYGENPLANT"); items.push_back("USERDEFINED"); items.push_back("VACUUMSTATION"); - IFC4_IfcMedicalDeviceTypeEnum_type = new enumeration_type("IfcMedicalDeviceTypeEnum", 582, items); + IFC4_IfcMedicalDeviceTypeEnum_type = new enumeration_type("IfcMedicalDeviceTypeEnum", 585, items); } { std::vector items; items.reserve(14); @@ -3545,35 +3561,35 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("STRUT"); items.push_back("STUD"); items.push_back("USERDEFINED"); - IFC4_IfcMemberTypeEnum_type = new enumeration_type("IfcMemberTypeEnum", 586, items); + IFC4_IfcMemberTypeEnum_type = new enumeration_type("IfcMemberTypeEnum", 589, items); } - IFC4_IfcModulusOfElasticityMeasure_type = new type_declaration("IfcModulusOfElasticityMeasure", 590, new simple_type(simple_type::real_type)); - IFC4_IfcModulusOfLinearSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfLinearSubgradeReactionMeasure", 591, new simple_type(simple_type::real_type)); - IFC4_IfcModulusOfRotationalSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfRotationalSubgradeReactionMeasure", 592, new simple_type(simple_type::real_type)); + IFC4_IfcModulusOfElasticityMeasure_type = new type_declaration("IfcModulusOfElasticityMeasure", 593, new simple_type(simple_type::real_type)); + IFC4_IfcModulusOfLinearSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfLinearSubgradeReactionMeasure", 594, new simple_type(simple_type::real_type)); + IFC4_IfcModulusOfRotationalSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfRotationalSubgradeReactionMeasure", 595, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcBoolean_type); items.push_back(IFC4_IfcModulusOfRotationalSubgradeReactionMeasure_type); - IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type = new select_type("IfcModulusOfRotationalSubgradeReactionSelect", 593, items); + IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type = new select_type("IfcModulusOfRotationalSubgradeReactionSelect", 596, items); } - IFC4_IfcModulusOfSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfSubgradeReactionMeasure", 594, new simple_type(simple_type::real_type)); + IFC4_IfcModulusOfSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfSubgradeReactionMeasure", 597, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcBoolean_type); items.push_back(IFC4_IfcModulusOfSubgradeReactionMeasure_type); - IFC4_IfcModulusOfSubgradeReactionSelect_type = new select_type("IfcModulusOfSubgradeReactionSelect", 595, items); + IFC4_IfcModulusOfSubgradeReactionSelect_type = new select_type("IfcModulusOfSubgradeReactionSelect", 598, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcBoolean_type); items.push_back(IFC4_IfcModulusOfLinearSubgradeReactionMeasure_type); - IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type = new select_type("IfcModulusOfTranslationalSubgradeReactionSelect", 596, items); + IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type = new select_type("IfcModulusOfTranslationalSubgradeReactionSelect", 599, items); } - IFC4_IfcMoistureDiffusivityMeasure_type = new type_declaration("IfcMoistureDiffusivityMeasure", 597, new simple_type(simple_type::real_type)); - IFC4_IfcMolecularWeightMeasure_type = new type_declaration("IfcMolecularWeightMeasure", 598, new simple_type(simple_type::real_type)); - IFC4_IfcMomentOfInertiaMeasure_type = new type_declaration("IfcMomentOfInertiaMeasure", 599, new simple_type(simple_type::real_type)); - IFC4_IfcMonetaryMeasure_type = new type_declaration("IfcMonetaryMeasure", 600, new simple_type(simple_type::real_type)); - IFC4_IfcMonthInYearNumber_type = new type_declaration("IfcMonthInYearNumber", 602, new simple_type(simple_type::integer_type)); + IFC4_IfcMoistureDiffusivityMeasure_type = new type_declaration("IfcMoistureDiffusivityMeasure", 600, new simple_type(simple_type::real_type)); + IFC4_IfcMolecularWeightMeasure_type = new type_declaration("IfcMolecularWeightMeasure", 601, new simple_type(simple_type::real_type)); + IFC4_IfcMomentOfInertiaMeasure_type = new type_declaration("IfcMomentOfInertiaMeasure", 602, new simple_type(simple_type::real_type)); + IFC4_IfcMonetaryMeasure_type = new type_declaration("IfcMonetaryMeasure", 603, new simple_type(simple_type::real_type)); + IFC4_IfcMonthInYearNumber_type = new type_declaration("IfcMonthInYearNumber", 605, new simple_type(simple_type::integer_type)); { std::vector items; items.reserve(5); items.push_back("BELTDRIVE"); @@ -3581,15 +3597,15 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("DIRECTDRIVE"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcMotorConnectionTypeEnum_type = new enumeration_type("IfcMotorConnectionTypeEnum", 605, items); + IFC4_IfcMotorConnectionTypeEnum_type = new enumeration_type("IfcMotorConnectionTypeEnum", 608, items); } - IFC4_IfcNonNegativeLengthMeasure_type = new type_declaration("IfcNonNegativeLengthMeasure", 607, new named_type(IFC4_IfcLengthMeasure_type)); + IFC4_IfcNonNegativeLengthMeasure_type = new type_declaration("IfcNonNegativeLengthMeasure", 610, new named_type(IFC4_IfcLengthMeasure_type)); { std::vector items; items.reserve(1); items.push_back("NULL"); - IFC4_IfcNullStyle_type = new enumeration_type("IfcNullStyle", 609, items); + IFC4_IfcNullStyle_type = new enumeration_type("IfcNullStyle", 612, items); } - IFC4_IfcNumericMeasure_type = new type_declaration("IfcNumericMeasure", 610, new simple_type(simple_type::number_type)); + IFC4_IfcNumericMeasure_type = new type_declaration("IfcNumericMeasure", 613, new simple_type(simple_type::number_type)); { std::vector items; items.reserve(8); items.push_back("ACTOR"); @@ -3600,7 +3616,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PRODUCT"); items.push_back("PROJECT"); items.push_back("RESOURCE"); - IFC4_IfcObjectTypeEnum_type = new enumeration_type("IfcObjectTypeEnum", 617, items); + IFC4_IfcObjectTypeEnum_type = new enumeration_type("IfcObjectTypeEnum", 620, items); } { std::vector items; items.reserve(13); @@ -3617,7 +3633,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SPECIFICATION"); items.push_back("TRIGGERCONDITION"); items.push_back("USERDEFINED"); - IFC4_IfcObjectiveEnum_type = new enumeration_type("IfcObjectiveEnum", 614, items); + IFC4_IfcObjectiveEnum_type = new enumeration_type("IfcObjectiveEnum", 617, items); } { std::vector items; items.reserve(9); @@ -3630,7 +3646,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("OWNER"); items.push_back("TENANT"); items.push_back("USERDEFINED"); - IFC4_IfcOccupantTypeEnum_type = new enumeration_type("IfcOccupantTypeEnum", 619, items); + IFC4_IfcOccupantTypeEnum_type = new enumeration_type("IfcOccupantTypeEnum", 622, items); } { std::vector items; items.reserve(4); @@ -3638,7 +3654,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("OPENING"); items.push_back("RECESS"); items.push_back("USERDEFINED"); - IFC4_IfcOpeningElementTypeEnum_type = new enumeration_type("IfcOpeningElementTypeEnum", 623, items); + IFC4_IfcOpeningElementTypeEnum_type = new enumeration_type("IfcOpeningElementTypeEnum", 626, items); } { std::vector items; items.reserve(7); @@ -3649,15 +3665,15 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("POWEROUTLET"); items.push_back("TELEPHONEOUTLET"); items.push_back("USERDEFINED"); - IFC4_IfcOutletTypeEnum_type = new enumeration_type("IfcOutletTypeEnum", 632, items); + IFC4_IfcOutletTypeEnum_type = new enumeration_type("IfcOutletTypeEnum", 635, items); } - IFC4_IfcPHMeasure_type = new type_declaration("IfcPHMeasure", 646, new simple_type(simple_type::real_type)); - IFC4_IfcParameterValue_type = new type_declaration("IfcParameterValue", 635, new simple_type(simple_type::real_type)); + IFC4_IfcPHMeasure_type = new type_declaration("IfcPHMeasure", 649, new simple_type(simple_type::real_type)); + IFC4_IfcParameterValue_type = new type_declaration("IfcParameterValue", 638, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcPerformanceHistoryTypeEnum_type = new enumeration_type("IfcPerformanceHistoryTypeEnum", 639, items); + IFC4_IfcPerformanceHistoryTypeEnum_type = new enumeration_type("IfcPerformanceHistoryTypeEnum", 642, items); } { std::vector items; items.reserve(5); @@ -3666,7 +3682,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SCREEN"); items.push_back("USERDEFINED"); - IFC4_IfcPermeableCoveringOperationEnum_type = new enumeration_type("IfcPermeableCoveringOperationEnum", 640, items); + IFC4_IfcPermeableCoveringOperationEnum_type = new enumeration_type("IfcPermeableCoveringOperationEnum", 643, items); } { std::vector items; items.reserve(5); @@ -3675,14 +3691,14 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); items.push_back("WORK"); - IFC4_IfcPermitTypeEnum_type = new enumeration_type("IfcPermitTypeEnum", 643, items); + IFC4_IfcPermitTypeEnum_type = new enumeration_type("IfcPermitTypeEnum", 646, items); } { std::vector items; items.reserve(3); items.push_back("NOTDEFINED"); items.push_back("PHYSICAL"); items.push_back("VIRTUAL"); - IFC4_IfcPhysicalOrVirtualEnum_type = new enumeration_type("IfcPhysicalOrVirtualEnum", 648, items); + IFC4_IfcPhysicalOrVirtualEnum_type = new enumeration_type("IfcPhysicalOrVirtualEnum", 651, items); } { std::vector items; items.reserve(6); @@ -3692,7 +3708,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PRECAST_CONCRETE"); items.push_back("PREFAB_STEEL"); items.push_back("USERDEFINED"); - IFC4_IfcPileConstructionEnum_type = new enumeration_type("IfcPileConstructionEnum", 652, items); + IFC4_IfcPileConstructionEnum_type = new enumeration_type("IfcPileConstructionEnum", 655, items); } { std::vector items; items.reserve(8); @@ -3704,7 +3720,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SUPPORT"); items.push_back("USERDEFINED"); - IFC4_IfcPileTypeEnum_type = new enumeration_type("IfcPileTypeEnum", 654, items); + IFC4_IfcPileTypeEnum_type = new enumeration_type("IfcPileTypeEnum", 657, items); } { std::vector items; items.reserve(9); @@ -3717,7 +3733,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("OBSTRUCTION"); items.push_back("TRANSITION"); items.push_back("USERDEFINED"); - IFC4_IfcPipeFittingTypeEnum_type = new enumeration_type("IfcPipeFittingTypeEnum", 657, items); + IFC4_IfcPipeFittingTypeEnum_type = new enumeration_type("IfcPipeFittingTypeEnum", 660, items); } { std::vector items; items.reserve(7); @@ -3728,24 +3744,31 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("RIGIDSEGMENT"); items.push_back("SPOOL"); items.push_back("USERDEFINED"); - IFC4_IfcPipeSegmentTypeEnum_type = new enumeration_type("IfcPipeSegmentTypeEnum", 660, items); + IFC4_IfcPipeSegmentTypeEnum_type = new enumeration_type("IfcPipeSegmentTypeEnum", 663, items); } - IFC4_IfcPlanarForceMeasure_type = new type_declaration("IfcPlanarForceMeasure", 665, new simple_type(simple_type::real_type)); - IFC4_IfcPlaneAngleMeasure_type = new type_declaration("IfcPlaneAngleMeasure", 667, new simple_type(simple_type::real_type)); + IFC4_IfcPlanarForceMeasure_type = new type_declaration("IfcPlanarForceMeasure", 668, new simple_type(simple_type::real_type)); + IFC4_IfcPlaneAngleMeasure_type = new type_declaration("IfcPlaneAngleMeasure", 670, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(4); items.push_back("CURTAIN_PANEL"); items.push_back("NOTDEFINED"); items.push_back("SHEET"); items.push_back("USERDEFINED"); - IFC4_IfcPlateTypeEnum_type = new enumeration_type("IfcPlateTypeEnum", 671, items); + IFC4_IfcPlateTypeEnum_type = new enumeration_type("IfcPlateTypeEnum", 674, items); } - IFC4_IfcPositiveInteger_type = new type_declaration("IfcPositiveInteger", 680, new named_type(IFC4_IfcInteger_type)); - IFC4_IfcPositiveLengthMeasure_type = new type_declaration("IfcPositiveLengthMeasure", 681, new named_type(IFC4_IfcLengthMeasure_type)); - IFC4_IfcPositivePlaneAngleMeasure_type = new type_declaration("IfcPositivePlaneAngleMeasure", 682, new named_type(IFC4_IfcPlaneAngleMeasure_type)); - IFC4_IfcPowerMeasure_type = new type_declaration("IfcPowerMeasure", 685, new simple_type(simple_type::real_type)); - IFC4_IfcPresentableText_type = new type_declaration("IfcPresentableText", 692, new simple_type(simple_type::string_type)); - IFC4_IfcPressureMeasure_type = new type_declaration("IfcPressureMeasure", 699, new simple_type(simple_type::real_type)); + IFC4_IfcPositiveInteger_type = new type_declaration("IfcPositiveInteger", 684, new named_type(IFC4_IfcInteger_type)); + IFC4_IfcPositiveLengthMeasure_type = new type_declaration("IfcPositiveLengthMeasure", 685, new named_type(IFC4_IfcLengthMeasure_type)); + IFC4_IfcPositivePlaneAngleMeasure_type = new type_declaration("IfcPositivePlaneAngleMeasure", 686, new named_type(IFC4_IfcPlaneAngleMeasure_type)); + IFC4_IfcPowerMeasure_type = new type_declaration("IfcPowerMeasure", 689, new simple_type(simple_type::real_type)); + { + std::vector items; items.reserve(3); + items.push_back("CURVE3D"); + items.push_back("PCURVE_S1"); + items.push_back("PCURVE_S2"); + IFC4_IfcPreferredSurfaceCurveRepresentation_type = new enumeration_type("IfcPreferredSurfaceCurveRepresentation", 696, items); + } + IFC4_IfcPresentableText_type = new type_declaration("IfcPresentableText", 697, new simple_type(simple_type::string_type)); + IFC4_IfcPressureMeasure_type = new type_declaration("IfcPressureMeasure", 704, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(9); items.push_back("ADVICE_CAUTION"); @@ -3757,13 +3780,13 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SHUTDOWN"); items.push_back("STARTUP"); items.push_back("USERDEFINED"); - IFC4_IfcProcedureTypeEnum_type = new enumeration_type("IfcProcedureTypeEnum", 702, items); + IFC4_IfcProcedureTypeEnum_type = new enumeration_type("IfcProcedureTypeEnum", 707, items); } { std::vector items; items.reserve(2); items.push_back("AREA"); items.push_back("CURVE"); - IFC4_IfcProfileTypeEnum_type = new enumeration_type("IfcProfileTypeEnum", 712, items); + IFC4_IfcProfileTypeEnum_type = new enumeration_type("IfcProfileTypeEnum", 717, items); } { std::vector items; items.reserve(7); @@ -3774,19 +3797,19 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PURCHASEORDER"); items.push_back("USERDEFINED"); items.push_back("WORKORDER"); - IFC4_IfcProjectOrderTypeEnum_type = new enumeration_type("IfcProjectOrderTypeEnum", 720, items); + IFC4_IfcProjectOrderTypeEnum_type = new enumeration_type("IfcProjectOrderTypeEnum", 725, items); } { std::vector items; items.reserve(2); items.push_back("PROJECTED_LENGTH"); items.push_back("TRUE_LENGTH"); - IFC4_IfcProjectedOrTrueLengthEnum_type = new enumeration_type("IfcProjectedOrTrueLengthEnum", 715, items); + IFC4_IfcProjectedOrTrueLengthEnum_type = new enumeration_type("IfcProjectedOrTrueLengthEnum", 720, items); } { std::vector items; items.reserve(2); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcProjectionElementTypeEnum_type = new enumeration_type("IfcProjectionElementTypeEnum", 717, items); + IFC4_IfcProjectionElementTypeEnum_type = new enumeration_type("IfcProjectionElementTypeEnum", 722, items); } { std::vector items; items.reserve(8); @@ -3798,7 +3821,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("QTO_OCCURRENCEDRIVEN"); items.push_back("QTO_TYPEDRIVENONLY"); items.push_back("QTO_TYPEDRIVENOVERRIDE"); - IFC4_IfcPropertySetTemplateTypeEnum_type = new enumeration_type("IfcPropertySetTemplateTypeEnum", 735, items); + IFC4_IfcPropertySetTemplateTypeEnum_type = new enumeration_type("IfcPropertySetTemplateTypeEnum", 740, items); } { std::vector items; items.reserve(6); @@ -3808,7 +3831,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("RESIDUALCURRENT"); items.push_back("THERMAL"); items.push_back("USERDEFINED"); - IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type = new enumeration_type("IfcProtectiveDeviceTrippingUnitTypeEnum", 743, items); + IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type = new enumeration_type("IfcProtectiveDeviceTrippingUnitTypeEnum", 748, items); } { std::vector items; items.reserve(9); @@ -3821,7 +3844,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("RESIDUALCURRENTSWITCH"); items.push_back("USERDEFINED"); items.push_back("VARISTOR"); - IFC4_IfcProtectiveDeviceTypeEnum_type = new enumeration_type("IfcProtectiveDeviceTypeEnum", 745, items); + IFC4_IfcProtectiveDeviceTypeEnum_type = new enumeration_type("IfcProtectiveDeviceTypeEnum", 750, items); } { std::vector items; items.reserve(9); @@ -3834,9 +3857,9 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("USERDEFINED"); items.push_back("VERTICALINLINE"); items.push_back("VERTICALTURBINE"); - IFC4_IfcPumpTypeEnum_type = new enumeration_type("IfcPumpTypeEnum", 749, items); + IFC4_IfcPumpTypeEnum_type = new enumeration_type("IfcPumpTypeEnum", 754, items); } - IFC4_IfcRadioActivityMeasure_type = new type_declaration("IfcRadioActivityMeasure", 757, new simple_type(simple_type::real_type)); + IFC4_IfcRadioActivityMeasure_type = new type_declaration("IfcRadioActivityMeasure", 762, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(5); items.push_back("BALUSTRADE"); @@ -3844,7 +3867,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("HANDRAIL"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcRailingTypeEnum_type = new enumeration_type("IfcRailingTypeEnum", 760, items); + IFC4_IfcRailingTypeEnum_type = new enumeration_type("IfcRailingTypeEnum", 765, items); } { std::vector items; items.reserve(4); @@ -3852,7 +3875,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SPIRAL"); items.push_back("STRAIGHT"); items.push_back("USERDEFINED"); - IFC4_IfcRampFlightTypeEnum_type = new enumeration_type("IfcRampFlightTypeEnum", 764, items); + IFC4_IfcRampFlightTypeEnum_type = new enumeration_type("IfcRampFlightTypeEnum", 769, items); } { std::vector items; items.reserve(8); @@ -3864,10 +3887,10 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TWO_QUARTER_TURN_RAMP"); items.push_back("TWO_STRAIGHT_RUN_RAMP"); items.push_back("USERDEFINED"); - IFC4_IfcRampTypeEnum_type = new enumeration_type("IfcRampTypeEnum", 766, items); + IFC4_IfcRampTypeEnum_type = new enumeration_type("IfcRampTypeEnum", 771, items); } - IFC4_IfcRatioMeasure_type = new type_declaration("IfcRatioMeasure", 767, new simple_type(simple_type::real_type)); - IFC4_IfcReal_type = new type_declaration("IfcReal", 770, new simple_type(simple_type::real_type)); + IFC4_IfcRatioMeasure_type = new type_declaration("IfcRatioMeasure", 772, new simple_type(simple_type::real_type)); + IFC4_IfcReal_type = new type_declaration("IfcReal", 775, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(8); items.push_back("BY_DAY_COUNT"); @@ -3878,7 +3901,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("WEEKLY"); items.push_back("YEARLY_BY_DAY_OF_MONTH"); items.push_back("YEARLY_BY_POSITION"); - IFC4_IfcRecurrenceTypeEnum_type = new enumeration_type("IfcRecurrenceTypeEnum", 776, items); + IFC4_IfcRecurrenceTypeEnum_type = new enumeration_type("IfcRecurrenceTypeEnum", 781, items); } { std::vector items; items.reserve(10); @@ -3892,7 +3915,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PHONG"); items.push_back("PLASTIC"); items.push_back("STRAUSS"); - IFC4_IfcReflectanceMethodEnum_type = new enumeration_type("IfcReflectanceMethodEnum", 778, items); + IFC4_IfcReflectanceMethodEnum_type = new enumeration_type("IfcReflectanceMethodEnum", 783, items); } { std::vector items; items.reserve(10); @@ -3906,13 +3929,13 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SHEAR"); items.push_back("STUD"); items.push_back("USERDEFINED"); - IFC4_IfcReinforcingBarRoleEnum_type = new enumeration_type("IfcReinforcingBarRoleEnum", 783, items); + IFC4_IfcReinforcingBarRoleEnum_type = new enumeration_type("IfcReinforcingBarRoleEnum", 788, items); } { std::vector items; items.reserve(2); items.push_back("PLAIN"); items.push_back("TEXTURED"); - IFC4_IfcReinforcingBarSurfaceEnum_type = new enumeration_type("IfcReinforcingBarSurfaceEnum", 784, items); + IFC4_IfcReinforcingBarSurfaceEnum_type = new enumeration_type("IfcReinforcingBarSurfaceEnum", 789, items); } { std::vector items; items.reserve(10); @@ -3926,13 +3949,13 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SHEAR"); items.push_back("STUD"); items.push_back("USERDEFINED"); - IFC4_IfcReinforcingBarTypeEnum_type = new enumeration_type("IfcReinforcingBarTypeEnum", 786, items); + IFC4_IfcReinforcingBarTypeEnum_type = new enumeration_type("IfcReinforcingBarTypeEnum", 791, items); } { std::vector items; items.reserve(2); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcReinforcingMeshTypeEnum_type = new enumeration_type("IfcReinforcingMeshTypeEnum", 791, items); + IFC4_IfcReinforcingMeshTypeEnum_type = new enumeration_type("IfcReinforcingMeshTypeEnum", 796, items); } { std::vector items; items.reserve(23); @@ -3959,7 +3982,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SUBCONTRACTOR"); items.push_back("SUPPLIER"); items.push_back("USERDEFINED"); - IFC4_IfcRoleEnum_type = new enumeration_type("IfcRoleEnum", 856, items); + IFC4_IfcRoleEnum_type = new enumeration_type("IfcRoleEnum", 861, items); } { std::vector items; items.reserve(15); @@ -3978,16 +4001,16 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("RAINBOW_ROOF"); items.push_back("SHED_ROOF"); items.push_back("USERDEFINED"); - IFC4_IfcRoofTypeEnum_type = new enumeration_type("IfcRoofTypeEnum", 859, items); + IFC4_IfcRoofTypeEnum_type = new enumeration_type("IfcRoofTypeEnum", 864, items); } - IFC4_IfcRotationalFrequencyMeasure_type = new type_declaration("IfcRotationalFrequencyMeasure", 861, new simple_type(simple_type::real_type)); - IFC4_IfcRotationalMassMeasure_type = new type_declaration("IfcRotationalMassMeasure", 862, new simple_type(simple_type::real_type)); - IFC4_IfcRotationalStiffnessMeasure_type = new type_declaration("IfcRotationalStiffnessMeasure", 863, new simple_type(simple_type::real_type)); + IFC4_IfcRotationalFrequencyMeasure_type = new type_declaration("IfcRotationalFrequencyMeasure", 866, new simple_type(simple_type::real_type)); + IFC4_IfcRotationalMassMeasure_type = new type_declaration("IfcRotationalMassMeasure", 867, new simple_type(simple_type::real_type)); + IFC4_IfcRotationalStiffnessMeasure_type = new type_declaration("IfcRotationalStiffnessMeasure", 868, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcBoolean_type); items.push_back(IFC4_IfcRotationalStiffnessMeasure_type); - IFC4_IfcRotationalStiffnessSelect_type = new select_type("IfcRotationalStiffnessSelect", 864, items); + IFC4_IfcRotationalStiffnessSelect_type = new select_type("IfcRotationalStiffnessSelect", 869, items); } { std::vector items; items.reserve(16); @@ -4007,7 +4030,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PETA"); items.push_back("PICO"); items.push_back("TERA"); - IFC4_IfcSIPrefix_type = new enumeration_type("IfcSIPrefix", 894, items); + IFC4_IfcSIPrefix_type = new enumeration_type("IfcSIPrefix", 900, items); } { std::vector items; items.reserve(30); @@ -4041,7 +4064,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("VOLT"); items.push_back("WATT"); items.push_back("WEBER"); - IFC4_IfcSIUnitName_type = new enumeration_type("IfcSIUnitName", 897, items); + IFC4_IfcSIUnitName_type = new enumeration_type("IfcSIUnitName", 903, items); } { std::vector items; items.reserve(12); @@ -4057,21 +4080,22 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("USERDEFINED"); items.push_back("WASHHANDBASIN"); items.push_back("WCSEAT"); - IFC4_IfcSanitaryTerminalTypeEnum_type = new enumeration_type("IfcSanitaryTerminalTypeEnum", 868, items); + IFC4_IfcSanitaryTerminalTypeEnum_type = new enumeration_type("IfcSanitaryTerminalTypeEnum", 873, items); } - IFC4_IfcSectionModulusMeasure_type = new type_declaration("IfcSectionModulusMeasure", 872, new simple_type(simple_type::real_type)); + IFC4_IfcSectionModulusMeasure_type = new type_declaration("IfcSectionModulusMeasure", 878, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back("TAPERED"); items.push_back("UNIFORM"); - IFC4_IfcSectionTypeEnum_type = new enumeration_type("IfcSectionTypeEnum", 875, items); + IFC4_IfcSectionTypeEnum_type = new enumeration_type("IfcSectionTypeEnum", 881, items); } - IFC4_IfcSectionalAreaIntegralMeasure_type = new type_declaration("IfcSectionalAreaIntegralMeasure", 870, new simple_type(simple_type::real_type)); + IFC4_IfcSectionalAreaIntegralMeasure_type = new type_declaration("IfcSectionalAreaIntegralMeasure", 876, new simple_type(simple_type::real_type)); { - std::vector items; items.reserve(25); + std::vector items; items.reserve(26); items.push_back("CO2SENSOR"); items.push_back("CONDUCTANCESENSOR"); items.push_back("CONTACTSENSOR"); + items.push_back("COSENSOR"); items.push_back("FIRESENSOR"); items.push_back("FLOWSENSOR"); items.push_back("FROSTSENSOR"); @@ -4094,7 +4118,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TEMPERATURESENSOR"); items.push_back("USERDEFINED"); items.push_back("WINDSENSOR"); - IFC4_IfcSensorTypeEnum_type = new enumeration_type("IfcSensorTypeEnum", 879, items); + IFC4_IfcSensorTypeEnum_type = new enumeration_type("IfcSensorTypeEnum", 885, items); } { std::vector items; items.reserve(6); @@ -4104,7 +4128,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("START_FINISH"); items.push_back("START_START"); items.push_back("USERDEFINED"); - IFC4_IfcSequenceEnum_type = new enumeration_type("IfcSequenceEnum", 880, items); + IFC4_IfcSequenceEnum_type = new enumeration_type("IfcSequenceEnum", 886, items); } { std::vector items; items.reserve(5); @@ -4113,9 +4137,9 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SHUTTER"); items.push_back("USERDEFINED"); - IFC4_IfcShadingDeviceTypeEnum_type = new enumeration_type("IfcShadingDeviceTypeEnum", 883, items); + IFC4_IfcShadingDeviceTypeEnum_type = new enumeration_type("IfcShadingDeviceTypeEnum", 889, items); } - IFC4_IfcShearModulusMeasure_type = new type_declaration("IfcShearModulusMeasure", 887, new simple_type(simple_type::real_type)); + IFC4_IfcShearModulusMeasure_type = new type_declaration("IfcShearModulusMeasure", 893, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(12); items.push_back("P_BOUNDEDVALUE"); @@ -4130,7 +4154,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("Q_TIME"); items.push_back("Q_VOLUME"); items.push_back("Q_WEIGHT"); - IFC4_IfcSimplePropertyTemplateTypeEnum_type = new enumeration_type("IfcSimplePropertyTemplateTypeEnum", 892, items); + IFC4_IfcSimplePropertyTemplateTypeEnum_type = new enumeration_type("IfcSimplePropertyTemplateTypeEnum", 898, items); } { std::vector items; items.reserve(6); @@ -4140,7 +4164,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("ROOF"); items.push_back("USERDEFINED"); - IFC4_IfcSlabTypeEnum_type = new enumeration_type("IfcSlabTypeEnum", 903, items); + IFC4_IfcSlabTypeEnum_type = new enumeration_type("IfcSlabTypeEnum", 909, items); } { std::vector items; items.reserve(4); @@ -4148,20 +4172,20 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SOLARCOLLECTOR"); items.push_back("SOLARPANEL"); items.push_back("USERDEFINED"); - IFC4_IfcSolarDeviceTypeEnum_type = new enumeration_type("IfcSolarDeviceTypeEnum", 907, items); + IFC4_IfcSolarDeviceTypeEnum_type = new enumeration_type("IfcSolarDeviceTypeEnum", 913, items); } - IFC4_IfcSolidAngleMeasure_type = new type_declaration("IfcSolidAngleMeasure", 908, new simple_type(simple_type::real_type)); - IFC4_IfcSoundPowerLevelMeasure_type = new type_declaration("IfcSoundPowerLevelMeasure", 911, new simple_type(simple_type::real_type)); - IFC4_IfcSoundPowerMeasure_type = new type_declaration("IfcSoundPowerMeasure", 912, new simple_type(simple_type::real_type)); - IFC4_IfcSoundPressureLevelMeasure_type = new type_declaration("IfcSoundPressureLevelMeasure", 913, new simple_type(simple_type::real_type)); - IFC4_IfcSoundPressureMeasure_type = new type_declaration("IfcSoundPressureMeasure", 914, new simple_type(simple_type::real_type)); + IFC4_IfcSolidAngleMeasure_type = new type_declaration("IfcSolidAngleMeasure", 914, new simple_type(simple_type::real_type)); + IFC4_IfcSoundPowerLevelMeasure_type = new type_declaration("IfcSoundPowerLevelMeasure", 917, new simple_type(simple_type::real_type)); + IFC4_IfcSoundPowerMeasure_type = new type_declaration("IfcSoundPowerMeasure", 918, new simple_type(simple_type::real_type)); + IFC4_IfcSoundPressureLevelMeasure_type = new type_declaration("IfcSoundPressureLevelMeasure", 919, new simple_type(simple_type::real_type)); + IFC4_IfcSoundPressureMeasure_type = new type_declaration("IfcSoundPressureMeasure", 920, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(4); items.push_back("CONVECTOR"); items.push_back("NOTDEFINED"); items.push_back("RADIATOR"); items.push_back("USERDEFINED"); - IFC4_IfcSpaceHeaterTypeEnum_type = new enumeration_type("IfcSpaceHeaterTypeEnum", 919, items); + IFC4_IfcSpaceHeaterTypeEnum_type = new enumeration_type("IfcSpaceHeaterTypeEnum", 925, items); } { std::vector items; items.reserve(7); @@ -4172,7 +4196,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PARKING"); items.push_back("SPACE"); items.push_back("USERDEFINED"); - IFC4_IfcSpaceTypeEnum_type = new enumeration_type("IfcSpaceTypeEnum", 921, items); + IFC4_IfcSpaceTypeEnum_type = new enumeration_type("IfcSpaceTypeEnum", 927, items); } { std::vector items; items.reserve(10); @@ -4186,11 +4210,11 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TRANSPORT"); items.push_back("USERDEFINED"); items.push_back("VENTILATION"); - IFC4_IfcSpatialZoneTypeEnum_type = new enumeration_type("IfcSpatialZoneTypeEnum", 928, items); + IFC4_IfcSpatialZoneTypeEnum_type = new enumeration_type("IfcSpatialZoneTypeEnum", 934, items); } - IFC4_IfcSpecificHeatCapacityMeasure_type = new type_declaration("IfcSpecificHeatCapacityMeasure", 929, new simple_type(simple_type::real_type)); - IFC4_IfcSpecularExponent_type = new type_declaration("IfcSpecularExponent", 930, new simple_type(simple_type::real_type)); - IFC4_IfcSpecularRoughness_type = new type_declaration("IfcSpecularRoughness", 932, new simple_type(simple_type::real_type)); + IFC4_IfcSpecificHeatCapacityMeasure_type = new type_declaration("IfcSpecificHeatCapacityMeasure", 935, new simple_type(simple_type::real_type)); + IFC4_IfcSpecularExponent_type = new type_declaration("IfcSpecularExponent", 936, new simple_type(simple_type::real_type)); + IFC4_IfcSpecularRoughness_type = new type_declaration("IfcSpecularRoughness", 938, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(5); items.push_back("BIRDCAGE"); @@ -4198,7 +4222,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("RAINWATERHOPPER"); items.push_back("USERDEFINED"); - IFC4_IfcStackTerminalTypeEnum_type = new enumeration_type("IfcStackTerminalTypeEnum", 936, items); + IFC4_IfcStackTerminalTypeEnum_type = new enumeration_type("IfcStackTerminalTypeEnum", 943, items); } { std::vector items; items.reserve(7); @@ -4209,7 +4233,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("STRAIGHT"); items.push_back("USERDEFINED"); items.push_back("WINDER"); - IFC4_IfcStairFlightTypeEnum_type = new enumeration_type("IfcStairFlightTypeEnum", 940, items); + IFC4_IfcStairFlightTypeEnum_type = new enumeration_type("IfcStairFlightTypeEnum", 947, items); } { std::vector items; items.reserve(16); @@ -4229,7 +4253,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TWO_QUARTER_WINDING_STAIR"); items.push_back("TWO_STRAIGHT_RUN_STAIR"); items.push_back("USERDEFINED"); - IFC4_IfcStairTypeEnum_type = new enumeration_type("IfcStairTypeEnum", 942, items); + IFC4_IfcStairTypeEnum_type = new enumeration_type("IfcStairTypeEnum", 949, items); } { std::vector items; items.reserve(5); @@ -4238,9 +4262,8 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("READONLYLOCKED"); items.push_back("READWRITE"); items.push_back("READWRITELOCKED"); - IFC4_IfcStateEnum_type = new enumeration_type("IfcStateEnum", 943, items); + IFC4_IfcStateEnum_type = new enumeration_type("IfcStateEnum", 950, items); } - IFC4_IfcStrippedOptional_type = new type_declaration("IfcStrippedOptional", 944, new simple_type(simple_type::boolean_type)); { std::vector items; items.reserve(9); items.push_back("CONST"); @@ -4252,7 +4275,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("POLYGONAL"); items.push_back("SINUS"); items.push_back("USERDEFINED"); - IFC4_IfcStructuralCurveActivityTypeEnum_type = new enumeration_type("IfcStructuralCurveActivityTypeEnum", 952, items); + IFC4_IfcStructuralCurveActivityTypeEnum_type = new enumeration_type("IfcStructuralCurveActivityTypeEnum", 958, items); } { std::vector items; items.reserve(7); @@ -4263,7 +4286,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("RIGID_JOINED_MEMBER"); items.push_back("TENSION_MEMBER"); items.push_back("USERDEFINED"); - IFC4_IfcStructuralCurveMemberTypeEnum_type = new enumeration_type("IfcStructuralCurveMemberTypeEnum", 955, items); + IFC4_IfcStructuralCurveMemberTypeEnum_type = new enumeration_type("IfcStructuralCurveMemberTypeEnum", 961, items); } { std::vector items; items.reserve(6); @@ -4273,7 +4296,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("ISOCONTOUR"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcStructuralSurfaceActivityTypeEnum_type = new enumeration_type("IfcStructuralSurfaceActivityTypeEnum", 981, items); + IFC4_IfcStructuralSurfaceActivityTypeEnum_type = new enumeration_type("IfcStructuralSurfaceActivityTypeEnum", 987, items); } { std::vector items; items.reserve(5); @@ -4282,7 +4305,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SHELL"); items.push_back("USERDEFINED"); - IFC4_IfcStructuralSurfaceMemberTypeEnum_type = new enumeration_type("IfcStructuralSurfaceMemberTypeEnum", 984, items); + IFC4_IfcStructuralSurfaceMemberTypeEnum_type = new enumeration_type("IfcStructuralSurfaceMemberTypeEnum", 990, items); } { std::vector items; items.reserve(4); @@ -4290,7 +4313,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PURCHASE"); items.push_back("USERDEFINED"); items.push_back("WORK"); - IFC4_IfcSubContractResourceTypeEnum_type = new enumeration_type("IfcSubContractResourceTypeEnum", 993, items); + IFC4_IfcSubContractResourceTypeEnum_type = new enumeration_type("IfcSubContractResourceTypeEnum", 999, items); } { std::vector items; items.reserve(5); @@ -4299,14 +4322,14 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TAG"); items.push_back("TREATMENT"); items.push_back("USERDEFINED"); - IFC4_IfcSurfaceFeatureTypeEnum_type = new enumeration_type("IfcSurfaceFeatureTypeEnum", 998, items); + IFC4_IfcSurfaceFeatureTypeEnum_type = new enumeration_type("IfcSurfaceFeatureTypeEnum", 1005, items); } { std::vector items; items.reserve(3); items.push_back("BOTH"); items.push_back("NEGATIVE"); items.push_back("POSITIVE"); - IFC4_IfcSurfaceSide_type = new enumeration_type("IfcSurfaceSide", 1003, items); + IFC4_IfcSurfaceSide_type = new enumeration_type("IfcSurfaceSide", 1010, items); } { std::vector items; items.reserve(11); @@ -4321,7 +4344,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SWITCHDISCONNECTOR"); items.push_back("TOGGLESWITCH"); items.push_back("USERDEFINED"); - IFC4_IfcSwitchingDeviceTypeEnum_type = new enumeration_type("IfcSwitchingDeviceTypeEnum", 1018, items); + IFC4_IfcSwitchingDeviceTypeEnum_type = new enumeration_type("IfcSwitchingDeviceTypeEnum", 1025, items); } { std::vector items; items.reserve(4); @@ -4329,7 +4352,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PANEL"); items.push_back("USERDEFINED"); items.push_back("WORKSURFACE"); - IFC4_IfcSystemFurnitureElementTypeEnum_type = new enumeration_type("IfcSystemFurnitureElementTypeEnum", 1022, items); + IFC4_IfcSystemFurnitureElementTypeEnum_type = new enumeration_type("IfcSystemFurnitureElementTypeEnum", 1029, items); } { std::vector items; items.reserve(9); @@ -4342,14 +4365,14 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("STORAGE"); items.push_back("USERDEFINED"); items.push_back("VESSEL"); - IFC4_IfcTankTypeEnum_type = new enumeration_type("IfcTankTypeEnum", 1028, items); + IFC4_IfcTankTypeEnum_type = new enumeration_type("IfcTankTypeEnum", 1035, items); } { std::vector items; items.reserve(3); items.push_back("ELAPSEDTIME"); items.push_back("NOTDEFINED"); items.push_back("WORKTIME"); - IFC4_IfcTaskDurationEnum_type = new enumeration_type("IfcTaskDurationEnum", 1030, items); + IFC4_IfcTaskDurationEnum_type = new enumeration_type("IfcTaskDurationEnum", 1037, items); } { std::vector items; items.reserve(14); @@ -4367,10 +4390,10 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("REMOVAL"); items.push_back("RENOVATION"); items.push_back("USERDEFINED"); - IFC4_IfcTaskTypeEnum_type = new enumeration_type("IfcTaskTypeEnum", 1034, items); + IFC4_IfcTaskTypeEnum_type = new enumeration_type("IfcTaskTypeEnum", 1041, items); } - IFC4_IfcTemperatureGradientMeasure_type = new type_declaration("IfcTemperatureGradientMeasure", 1036, new simple_type(simple_type::real_type)); - IFC4_IfcTemperatureRateOfChangeMeasure_type = new type_declaration("IfcTemperatureRateOfChangeMeasure", 1037, new simple_type(simple_type::real_type)); + IFC4_IfcTemperatureGradientMeasure_type = new type_declaration("IfcTemperatureGradientMeasure", 1043, new simple_type(simple_type::real_type)); + IFC4_IfcTemperatureRateOfChangeMeasure_type = new type_declaration("IfcTemperatureRateOfChangeMeasure", 1044, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(5); items.push_back("COUPLER"); @@ -4378,7 +4401,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("TENSIONING_END"); items.push_back("USERDEFINED"); - IFC4_IfcTendonAnchorTypeEnum_type = new enumeration_type("IfcTendonAnchorTypeEnum", 1041, items); + IFC4_IfcTendonAnchorTypeEnum_type = new enumeration_type("IfcTendonAnchorTypeEnum", 1048, items); } { std::vector items; items.reserve(6); @@ -4388,34 +4411,34 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("STRAND"); items.push_back("USERDEFINED"); items.push_back("WIRE"); - IFC4_IfcTendonTypeEnum_type = new enumeration_type("IfcTendonTypeEnum", 1043, items); + IFC4_IfcTendonTypeEnum_type = new enumeration_type("IfcTendonTypeEnum", 1050, items); } - IFC4_IfcText_type = new type_declaration("IfcText", 1046, new simple_type(simple_type::string_type)); - IFC4_IfcTextAlignment_type = new type_declaration("IfcTextAlignment", 1047, new simple_type(simple_type::string_type)); - IFC4_IfcTextDecoration_type = new type_declaration("IfcTextDecoration", 1048, new simple_type(simple_type::string_type)); - IFC4_IfcTextFontName_type = new type_declaration("IfcTextFontName", 1049, new simple_type(simple_type::string_type)); + IFC4_IfcText_type = new type_declaration("IfcText", 1053, new simple_type(simple_type::string_type)); + IFC4_IfcTextAlignment_type = new type_declaration("IfcTextAlignment", 1054, new simple_type(simple_type::string_type)); + IFC4_IfcTextDecoration_type = new type_declaration("IfcTextDecoration", 1055, new simple_type(simple_type::string_type)); + IFC4_IfcTextFontName_type = new type_declaration("IfcTextFontName", 1056, new simple_type(simple_type::string_type)); { std::vector items; items.reserve(4); items.push_back("DOWN"); items.push_back("LEFT"); items.push_back("RIGHT"); items.push_back("UP"); - IFC4_IfcTextPath_type = new enumeration_type("IfcTextPath", 1053, items); + IFC4_IfcTextPath_type = new enumeration_type("IfcTextPath", 1060, items); } - IFC4_IfcTextTransformation_type = new type_declaration("IfcTextTransformation", 1058, new simple_type(simple_type::string_type)); - IFC4_IfcThermalAdmittanceMeasure_type = new type_declaration("IfcThermalAdmittanceMeasure", 1064, new simple_type(simple_type::real_type)); - IFC4_IfcThermalConductivityMeasure_type = new type_declaration("IfcThermalConductivityMeasure", 1065, new simple_type(simple_type::real_type)); - IFC4_IfcThermalExpansionCoefficientMeasure_type = new type_declaration("IfcThermalExpansionCoefficientMeasure", 1066, new simple_type(simple_type::real_type)); - IFC4_IfcThermalResistanceMeasure_type = new type_declaration("IfcThermalResistanceMeasure", 1067, new simple_type(simple_type::real_type)); - IFC4_IfcThermalTransmittanceMeasure_type = new type_declaration("IfcThermalTransmittanceMeasure", 1068, new simple_type(simple_type::real_type)); - IFC4_IfcThermodynamicTemperatureMeasure_type = new type_declaration("IfcThermodynamicTemperatureMeasure", 1069, new simple_type(simple_type::real_type)); - IFC4_IfcTime_type = new type_declaration("IfcTime", 1070, new simple_type(simple_type::string_type)); - IFC4_IfcTimeMeasure_type = new type_declaration("IfcTimeMeasure", 1071, new simple_type(simple_type::real_type)); + IFC4_IfcTextTransformation_type = new type_declaration("IfcTextTransformation", 1065, new simple_type(simple_type::string_type)); + IFC4_IfcThermalAdmittanceMeasure_type = new type_declaration("IfcThermalAdmittanceMeasure", 1071, new simple_type(simple_type::real_type)); + IFC4_IfcThermalConductivityMeasure_type = new type_declaration("IfcThermalConductivityMeasure", 1072, new simple_type(simple_type::real_type)); + IFC4_IfcThermalExpansionCoefficientMeasure_type = new type_declaration("IfcThermalExpansionCoefficientMeasure", 1073, new simple_type(simple_type::real_type)); + IFC4_IfcThermalResistanceMeasure_type = new type_declaration("IfcThermalResistanceMeasure", 1074, new simple_type(simple_type::real_type)); + IFC4_IfcThermalTransmittanceMeasure_type = new type_declaration("IfcThermalTransmittanceMeasure", 1075, new simple_type(simple_type::real_type)); + IFC4_IfcThermodynamicTemperatureMeasure_type = new type_declaration("IfcThermodynamicTemperatureMeasure", 1076, new simple_type(simple_type::real_type)); + IFC4_IfcTime_type = new type_declaration("IfcTime", 1077, new simple_type(simple_type::string_type)); + IFC4_IfcTimeMeasure_type = new type_declaration("IfcTimeMeasure", 1078, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcDuration_type); items.push_back(IFC4_IfcRatioMeasure_type); - IFC4_IfcTimeOrRatioSelect_type = new select_type("IfcTimeOrRatioSelect", 1072, items); + IFC4_IfcTimeOrRatioSelect_type = new select_type("IfcTimeOrRatioSelect", 1079, items); } { std::vector items; items.reserve(7); @@ -4426,10 +4449,10 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PIECEWISEBINARY"); items.push_back("PIECEWISECONSTANT"); items.push_back("PIECEWISECONTINUOUS"); - IFC4_IfcTimeSeriesDataTypeEnum_type = new enumeration_type("IfcTimeSeriesDataTypeEnum", 1075, items); + IFC4_IfcTimeSeriesDataTypeEnum_type = new enumeration_type("IfcTimeSeriesDataTypeEnum", 1082, items); } - IFC4_IfcTimeStamp_type = new type_declaration("IfcTimeStamp", 1077, new simple_type(simple_type::integer_type)); - IFC4_IfcTorqueMeasure_type = new type_declaration("IfcTorqueMeasure", 1080, new simple_type(simple_type::real_type)); + IFC4_IfcTimeStamp_type = new type_declaration("IfcTimeStamp", 1084, new simple_type(simple_type::integer_type)); + IFC4_IfcTorqueMeasure_type = new type_declaration("IfcTorqueMeasure", 1088, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(7); items.push_back("CURRENT"); @@ -4439,7 +4462,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("RECTIFIER"); items.push_back("USERDEFINED"); items.push_back("VOLTAGE"); - IFC4_IfcTransformerTypeEnum_type = new enumeration_type("IfcTransformerTypeEnum", 1083, items); + IFC4_IfcTransformerTypeEnum_type = new enumeration_type("IfcTransformerTypeEnum", 1091, items); } { std::vector items; items.reserve(4); @@ -4447,13 +4470,13 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("CONTSAMEGRADIENT"); items.push_back("CONTSAMEGRADIENTSAMECURVATURE"); items.push_back("DISCONTINUOUS"); - IFC4_IfcTransitionCode_type = new enumeration_type("IfcTransitionCode", 1084, items); + IFC4_IfcTransitionCode_type = new enumeration_type("IfcTransitionCode", 1092, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcBoolean_type); items.push_back(IFC4_IfcLinearStiffnessMeasure_type); - IFC4_IfcTranslationalStiffnessSelect_type = new select_type("IfcTranslationalStiffnessSelect", 1085, items); + IFC4_IfcTranslationalStiffnessSelect_type = new select_type("IfcTranslationalStiffnessSelect", 1093, items); } { std::vector items; items.reserve(7); @@ -4464,23 +4487,23 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("MOVINGWALKWAY"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcTransportElementTypeEnum_type = new enumeration_type("IfcTransportElementTypeEnum", 1088, items); + IFC4_IfcTransportElementTypeEnum_type = new enumeration_type("IfcTransportElementTypeEnum", 1096, items); } { std::vector items; items.reserve(3); items.push_back("CARTESIAN"); items.push_back("PARAMETER"); items.push_back("UNSPECIFIED"); - IFC4_IfcTrimmingPreference_type = new enumeration_type("IfcTrimmingPreference", 1092, items); + IFC4_IfcTrimmingPreference_type = new enumeration_type("IfcTrimmingPreference", 1100, items); } { std::vector items; items.reserve(3); items.push_back("FINNED"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcTubeBundleTypeEnum_type = new enumeration_type("IfcTubeBundleTypeEnum", 1097, items); + IFC4_IfcTubeBundleTypeEnum_type = new enumeration_type("IfcTubeBundleTypeEnum", 1105, items); } - IFC4_IfcURIReference_type = new type_declaration("IfcURIReference", 1111, new simple_type(simple_type::string_type)); + IFC4_IfcURIReference_type = new type_declaration("IfcURIReference", 1119, new simple_type(simple_type::string_type)); { std::vector items; items.reserve(30); items.push_back("ABSORBEDDOSEUNIT"); @@ -4513,7 +4536,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TIMEUNIT"); items.push_back("USERDEFINED"); items.push_back("VOLUMEUNIT"); - IFC4_IfcUnitEnum_type = new enumeration_type("IfcUnitEnum", 1110, items); + IFC4_IfcUnitEnum_type = new enumeration_type("IfcUnitEnum", 1118, items); } { std::vector items; items.reserve(10); @@ -4527,7 +4550,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("THERMOSTAT"); items.push_back("USERDEFINED"); items.push_back("WEATHERSTATION"); - IFC4_IfcUnitaryControlElementTypeEnum_type = new enumeration_type("IfcUnitaryControlElementTypeEnum", 1105, items); + IFC4_IfcUnitaryControlElementTypeEnum_type = new enumeration_type("IfcUnitaryControlElementTypeEnum", 1113, items); } { std::vector items; items.reserve(7); @@ -4538,7 +4561,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("ROOFTOPUNIT"); items.push_back("SPLITSYSTEM"); items.push_back("USERDEFINED"); - IFC4_IfcUnitaryEquipmentTypeEnum_type = new enumeration_type("IfcUnitaryEquipmentTypeEnum", 1108, items); + IFC4_IfcUnitaryEquipmentTypeEnum_type = new enumeration_type("IfcUnitaryEquipmentTypeEnum", 1116, items); } { std::vector items; items.reserve(23); @@ -4565,16 +4588,16 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("STEAMTRAP"); items.push_back("STOPCOCK"); items.push_back("USERDEFINED"); - IFC4_IfcValveTypeEnum_type = new enumeration_type("IfcValveTypeEnum", 1116, items); + IFC4_IfcValveTypeEnum_type = new enumeration_type("IfcValveTypeEnum", 1124, items); } - IFC4_IfcVaporPermeabilityMeasure_type = new type_declaration("IfcVaporPermeabilityMeasure", 1117, new simple_type(simple_type::real_type)); + IFC4_IfcVaporPermeabilityMeasure_type = new type_declaration("IfcVaporPermeabilityMeasure", 1125, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(4); items.push_back("COMPRESSION"); items.push_back("NOTDEFINED"); items.push_back("SPRING"); items.push_back("USERDEFINED"); - IFC4_IfcVibrationIsolatorTypeEnum_type = new enumeration_type("IfcVibrationIsolatorTypeEnum", 1125, items); + IFC4_IfcVibrationIsolatorTypeEnum_type = new enumeration_type("IfcVibrationIsolatorTypeEnum", 1133, items); } { std::vector items; items.reserve(8); @@ -4586,10 +4609,10 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTCH"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4_IfcVoidingFeatureTypeEnum_type = new enumeration_type("IfcVoidingFeatureTypeEnum", 1129, items); + IFC4_IfcVoidingFeatureTypeEnum_type = new enumeration_type("IfcVoidingFeatureTypeEnum", 1137, items); } - IFC4_IfcVolumeMeasure_type = new type_declaration("IfcVolumeMeasure", 1130, new simple_type(simple_type::real_type)); - IFC4_IfcVolumetricFlowRateMeasure_type = new type_declaration("IfcVolumetricFlowRateMeasure", 1131, new simple_type(simple_type::real_type)); + IFC4_IfcVolumeMeasure_type = new type_declaration("IfcVolumeMeasure", 1138, new simple_type(simple_type::real_type)); + IFC4_IfcVolumetricFlowRateMeasure_type = new type_declaration("IfcVolumetricFlowRateMeasure", 1139, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(11); items.push_back("ELEMENTEDWALL"); @@ -4603,15 +4626,15 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SOLIDWALL"); items.push_back("STANDARD"); items.push_back("USERDEFINED"); - IFC4_IfcWallTypeEnum_type = new enumeration_type("IfcWallTypeEnum", 1136, items); + IFC4_IfcWallTypeEnum_type = new enumeration_type("IfcWallTypeEnum", 1144, items); } - IFC4_IfcWarpingConstantMeasure_type = new type_declaration("IfcWarpingConstantMeasure", 1137, new simple_type(simple_type::real_type)); - IFC4_IfcWarpingMomentMeasure_type = new type_declaration("IfcWarpingMomentMeasure", 1138, new simple_type(simple_type::real_type)); + IFC4_IfcWarpingConstantMeasure_type = new type_declaration("IfcWarpingConstantMeasure", 1145, new simple_type(simple_type::real_type)); + IFC4_IfcWarpingMomentMeasure_type = new type_declaration("IfcWarpingMomentMeasure", 1146, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcBoolean_type); items.push_back(IFC4_IfcWarpingMomentMeasure_type); - IFC4_IfcWarpingStiffnessSelect_type = new select_type("IfcWarpingStiffnessSelect", 1139, items); + IFC4_IfcWarpingStiffnessSelect_type = new select_type("IfcWarpingStiffnessSelect", 1147, items); } { std::vector items; items.reserve(9); @@ -4624,7 +4647,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("USERDEFINED"); items.push_back("WASTEDISPOSALUNIT"); items.push_back("WASTETRAP"); - IFC4_IfcWasteTerminalTypeEnum_type = new enumeration_type("IfcWasteTerminalTypeEnum", 1142, items); + IFC4_IfcWasteTerminalTypeEnum_type = new enumeration_type("IfcWasteTerminalTypeEnum", 1150, items); } { std::vector items; items.reserve(14); @@ -4642,7 +4665,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TILTANDTURNLEFTHAND"); items.push_back("TILTANDTURNRIGHTHAND"); items.push_back("TOPHUNG"); - IFC4_IfcWindowPanelOperationEnum_type = new enumeration_type("IfcWindowPanelOperationEnum", 1145, items); + IFC4_IfcWindowPanelOperationEnum_type = new enumeration_type("IfcWindowPanelOperationEnum", 1153, items); } { std::vector items; items.reserve(6); @@ -4652,7 +4675,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("RIGHT"); items.push_back("TOP"); - IFC4_IfcWindowPanelPositionEnum_type = new enumeration_type("IfcWindowPanelPositionEnum", 1146, items); + IFC4_IfcWindowPanelPositionEnum_type = new enumeration_type("IfcWindowPanelPositionEnum", 1154, items); } { std::vector items; items.reserve(8); @@ -4664,7 +4687,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("PLASTIC"); items.push_back("STEEL"); items.push_back("WOOD"); - IFC4_IfcWindowStyleConstructionEnum_type = new enumeration_type("IfcWindowStyleConstructionEnum", 1150, items); + IFC4_IfcWindowStyleConstructionEnum_type = new enumeration_type("IfcWindowStyleConstructionEnum", 1158, items); } { std::vector items; items.reserve(11); @@ -4679,7 +4702,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TRIPLE_PANEL_TOP"); items.push_back("TRIPLE_PANEL_VERTICAL"); items.push_back("USERDEFINED"); - IFC4_IfcWindowStyleOperationEnum_type = new enumeration_type("IfcWindowStyleOperationEnum", 1151, items); + IFC4_IfcWindowStyleOperationEnum_type = new enumeration_type("IfcWindowStyleOperationEnum", 1159, items); } { std::vector items; items.reserve(5); @@ -4688,7 +4711,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SKYLIGHT"); items.push_back("USERDEFINED"); items.push_back("WINDOW"); - IFC4_IfcWindowTypeEnum_type = new enumeration_type("IfcWindowTypeEnum", 1153, items); + IFC4_IfcWindowTypeEnum_type = new enumeration_type("IfcWindowTypeEnum", 1161, items); } { std::vector items; items.reserve(11); @@ -4703,7 +4726,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("TRIPLE_PANEL_TOP"); items.push_back("TRIPLE_PANEL_VERTICAL"); items.push_back("USERDEFINED"); - IFC4_IfcWindowTypePartitioningEnum_type = new enumeration_type("IfcWindowTypePartitioningEnum", 1154, items); + IFC4_IfcWindowTypePartitioningEnum_type = new enumeration_type("IfcWindowTypePartitioningEnum", 1162, items); } { std::vector items; items.reserve(5); @@ -4712,7 +4735,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("SECONDSHIFT"); items.push_back("THIRDSHIFT"); items.push_back("USERDEFINED"); - IFC4_IfcWorkCalendarTypeEnum_type = new enumeration_type("IfcWorkCalendarTypeEnum", 1156, items); + IFC4_IfcWorkCalendarTypeEnum_type = new enumeration_type("IfcWorkCalendarTypeEnum", 1164, items); } { std::vector items; items.reserve(5); @@ -4721,7 +4744,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("PLANNED"); items.push_back("USERDEFINED"); - IFC4_IfcWorkPlanTypeEnum_type = new enumeration_type("IfcWorkPlanTypeEnum", 1159, items); + IFC4_IfcWorkPlanTypeEnum_type = new enumeration_type("IfcWorkPlanTypeEnum", 1167, items); } { std::vector items; items.reserve(5); @@ -4730,133 +4753,133 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("PLANNED"); items.push_back("USERDEFINED"); - IFC4_IfcWorkScheduleTypeEnum_type = new enumeration_type("IfcWorkScheduleTypeEnum", 1161, items); + IFC4_IfcWorkScheduleTypeEnum_type = new enumeration_type("IfcWorkScheduleTypeEnum", 1169, items); } - IFC4_IfcActorRole_type = new entity("IfcActorRole", 7, 0); - IFC4_IfcAddress_type = new entity("IfcAddress", 12, 0); - IFC4_IfcApplication_type = new entity("IfcApplication", 35, 0); - IFC4_IfcAppliedValue_type = new entity("IfcAppliedValue", 36, 0); - IFC4_IfcApproval_type = new entity("IfcApproval", 38, 0); - IFC4_IfcBoundaryCondition_type = new entity("IfcBoundaryCondition", 74, 0); - IFC4_IfcBoundaryEdgeCondition_type = new entity("IfcBoundaryEdgeCondition", 76, IFC4_IfcBoundaryCondition_type); - IFC4_IfcBoundaryFaceCondition_type = new entity("IfcBoundaryFaceCondition", 77, IFC4_IfcBoundaryCondition_type); - IFC4_IfcBoundaryNodeCondition_type = new entity("IfcBoundaryNodeCondition", 78, IFC4_IfcBoundaryCondition_type); - IFC4_IfcBoundaryNodeConditionWarping_type = new entity("IfcBoundaryNodeConditionWarping", 79, IFC4_IfcBoundaryNodeCondition_type); - IFC4_IfcConnectionGeometry_type = new entity("IfcConnectionGeometry", 179, 0); - IFC4_IfcConnectionPointGeometry_type = new entity("IfcConnectionPointGeometry", 181, IFC4_IfcConnectionGeometry_type); - IFC4_IfcConnectionSurfaceGeometry_type = new entity("IfcConnectionSurfaceGeometry", 182, IFC4_IfcConnectionGeometry_type); - IFC4_IfcConnectionVolumeGeometry_type = new entity("IfcConnectionVolumeGeometry", 184, IFC4_IfcConnectionGeometry_type); - IFC4_IfcConstraint_type = new entity("IfcConstraint", 185, 0); - IFC4_IfcCoordinateOperation_type = new entity("IfcCoordinateOperation", 213, 0); - IFC4_IfcCoordinateReferenceSystem_type = new entity("IfcCoordinateReferenceSystem", 214, 0); - IFC4_IfcCostValue_type = new entity("IfcCostValue", 220, IFC4_IfcAppliedValue_type); - IFC4_IfcDerivedUnit_type = new entity("IfcDerivedUnit", 261, 0); - IFC4_IfcDerivedUnitElement_type = new entity("IfcDerivedUnitElement", 262, 0); - IFC4_IfcDimensionalExponents_type = new entity("IfcDimensionalExponents", 265, 0); - IFC4_IfcExternalInformation_type = new entity("IfcExternalInformation", 375, 0); - IFC4_IfcExternalReference_type = new entity("IfcExternalReference", 379, 0); - IFC4_IfcExternallyDefinedHatchStyle_type = new entity("IfcExternallyDefinedHatchStyle", 376, IFC4_IfcExternalReference_type); - IFC4_IfcExternallyDefinedSurfaceStyle_type = new entity("IfcExternallyDefinedSurfaceStyle", 377, IFC4_IfcExternalReference_type); - IFC4_IfcExternallyDefinedTextFont_type = new entity("IfcExternallyDefinedTextFont", 378, IFC4_IfcExternalReference_type); - IFC4_IfcGridAxis_type = new entity("IfcGridAxis", 461, 0); - IFC4_IfcIrregularTimeSeriesValue_type = new entity("IfcIrregularTimeSeriesValue", 494, 0); - IFC4_IfcLibraryInformation_type = new entity("IfcLibraryInformation", 514, IFC4_IfcExternalInformation_type); - IFC4_IfcLibraryReference_type = new entity("IfcLibraryReference", 515, IFC4_IfcExternalReference_type); - IFC4_IfcLightDistributionData_type = new entity("IfcLightDistributionData", 518, 0); - IFC4_IfcLightIntensityDistribution_type = new entity("IfcLightIntensityDistribution", 524, 0); - IFC4_IfcMapConversion_type = new entity("IfcMapConversion", 549, IFC4_IfcCoordinateOperation_type); - IFC4_IfcMaterialClassificationRelationship_type = new entity("IfcMaterialClassificationRelationship", 556, 0); - IFC4_IfcMaterialDefinition_type = new entity("IfcMaterialDefinition", 559, 0); - IFC4_IfcMaterialLayer_type = new entity("IfcMaterialLayer", 561, IFC4_IfcMaterialDefinition_type); - IFC4_IfcMaterialLayerSet_type = new entity("IfcMaterialLayerSet", 562, IFC4_IfcMaterialDefinition_type); - IFC4_IfcMaterialLayerWithOffsets_type = new entity("IfcMaterialLayerWithOffsets", 564, IFC4_IfcMaterialLayer_type); - IFC4_IfcMaterialList_type = new entity("IfcMaterialList", 565, 0); - IFC4_IfcMaterialProfile_type = new entity("IfcMaterialProfile", 566, IFC4_IfcMaterialDefinition_type); - IFC4_IfcMaterialProfileSet_type = new entity("IfcMaterialProfileSet", 567, IFC4_IfcMaterialDefinition_type); - IFC4_IfcMaterialProfileWithOffsets_type = new entity("IfcMaterialProfileWithOffsets", 570, IFC4_IfcMaterialProfile_type); - IFC4_IfcMaterialUsageDefinition_type = new entity("IfcMaterialUsageDefinition", 574, 0); - IFC4_IfcMeasureWithUnit_type = new entity("IfcMeasureWithUnit", 576, 0); - IFC4_IfcMetric_type = new entity("IfcMetric", 587, IFC4_IfcConstraint_type); - IFC4_IfcMonetaryUnit_type = new entity("IfcMonetaryUnit", 601, 0); - IFC4_IfcNamedUnit_type = new entity("IfcNamedUnit", 606, 0); - IFC4_IfcObjectPlacement_type = new entity("IfcObjectPlacement", 615, 0); - IFC4_IfcObjective_type = new entity("IfcObjective", 613, IFC4_IfcConstraint_type); - IFC4_IfcOrganization_type = new entity("IfcOrganization", 626, 0); - IFC4_IfcOwnerHistory_type = new entity("IfcOwnerHistory", 633, 0); - IFC4_IfcPerson_type = new entity("IfcPerson", 644, 0); - IFC4_IfcPersonAndOrganization_type = new entity("IfcPersonAndOrganization", 645, 0); - IFC4_IfcPhysicalQuantity_type = new entity("IfcPhysicalQuantity", 649, 0); - IFC4_IfcPhysicalSimpleQuantity_type = new entity("IfcPhysicalSimpleQuantity", 650, IFC4_IfcPhysicalQuantity_type); - IFC4_IfcPostalAddress_type = new entity("IfcPostalAddress", 684, IFC4_IfcAddress_type); - IFC4_IfcPresentationItem_type = new entity("IfcPresentationItem", 693, 0); - IFC4_IfcPresentationLayerAssignment_type = new entity("IfcPresentationLayerAssignment", 694, 0); - IFC4_IfcPresentationLayerWithStyle_type = new entity("IfcPresentationLayerWithStyle", 695, IFC4_IfcPresentationLayerAssignment_type); - IFC4_IfcPresentationStyle_type = new entity("IfcPresentationStyle", 696, 0); - IFC4_IfcPresentationStyleAssignment_type = new entity("IfcPresentationStyleAssignment", 697, 0); - IFC4_IfcProductRepresentation_type = new entity("IfcProductRepresentation", 707, 0); - IFC4_IfcProfileDef_type = new entity("IfcProfileDef", 710, 0); - IFC4_IfcProjectedCRS_type = new entity("IfcProjectedCRS", 714, IFC4_IfcCoordinateReferenceSystem_type); - IFC4_IfcPropertyAbstraction_type = new entity("IfcPropertyAbstraction", 722, 0); - IFC4_IfcPropertyEnumeration_type = new entity("IfcPropertyEnumeration", 727, IFC4_IfcPropertyAbstraction_type); - IFC4_IfcQuantityArea_type = new entity("IfcQuantityArea", 750, IFC4_IfcPhysicalSimpleQuantity_type); - IFC4_IfcQuantityCount_type = new entity("IfcQuantityCount", 751, IFC4_IfcPhysicalSimpleQuantity_type); - IFC4_IfcQuantityLength_type = new entity("IfcQuantityLength", 752, IFC4_IfcPhysicalSimpleQuantity_type); - IFC4_IfcQuantityTime_type = new entity("IfcQuantityTime", 754, IFC4_IfcPhysicalSimpleQuantity_type); - IFC4_IfcQuantityVolume_type = new entity("IfcQuantityVolume", 755, IFC4_IfcPhysicalSimpleQuantity_type); - IFC4_IfcQuantityWeight_type = new entity("IfcQuantityWeight", 756, IFC4_IfcPhysicalSimpleQuantity_type); - IFC4_IfcRecurrencePattern_type = new entity("IfcRecurrencePattern", 775, 0); - IFC4_IfcReference_type = new entity("IfcReference", 777, 0); - IFC4_IfcRepresentation_type = new entity("IfcRepresentation", 841, 0); - IFC4_IfcRepresentationContext_type = new entity("IfcRepresentationContext", 842, 0); - IFC4_IfcRepresentationItem_type = new entity("IfcRepresentationItem", 843, 0); - IFC4_IfcRepresentationMap_type = new entity("IfcRepresentationMap", 844, 0); - IFC4_IfcResourceLevelRelationship_type = new entity("IfcResourceLevelRelationship", 848, 0); - IFC4_IfcRoot_type = new entity("IfcRoot", 860, 0); - IFC4_IfcSIUnit_type = new entity("IfcSIUnit", 896, IFC4_IfcNamedUnit_type); - IFC4_IfcSchedulingTime_type = new entity("IfcSchedulingTime", 869, 0); - IFC4_IfcShapeAspect_type = new entity("IfcShapeAspect", 884, 0); - IFC4_IfcShapeModel_type = new entity("IfcShapeModel", 885, IFC4_IfcRepresentation_type); - IFC4_IfcShapeRepresentation_type = new entity("IfcShapeRepresentation", 886, IFC4_IfcShapeModel_type); - IFC4_IfcStructuralConnectionCondition_type = new entity("IfcStructuralConnectionCondition", 950, 0); - IFC4_IfcStructuralLoad_type = new entity("IfcStructuralLoad", 960, 0); - IFC4_IfcStructuralLoadConfiguration_type = new entity("IfcStructuralLoadConfiguration", 962, IFC4_IfcStructuralLoad_type); - IFC4_IfcStructuralLoadOrResult_type = new entity("IfcStructuralLoadOrResult", 965, IFC4_IfcStructuralLoad_type); - IFC4_IfcStructuralLoadStatic_type = new entity("IfcStructuralLoadStatic", 971, IFC4_IfcStructuralLoadOrResult_type); - IFC4_IfcStructuralLoadTemperature_type = new entity("IfcStructuralLoadTemperature", 972, IFC4_IfcStructuralLoadStatic_type); - IFC4_IfcStyleModel_type = new entity("IfcStyleModel", 990, IFC4_IfcRepresentation_type); - IFC4_IfcStyledItem_type = new entity("IfcStyledItem", 988, IFC4_IfcRepresentationItem_type); - IFC4_IfcStyledRepresentation_type = new entity("IfcStyledRepresentation", 989, IFC4_IfcStyleModel_type); - IFC4_IfcSurfaceReinforcementArea_type = new entity("IfcSurfaceReinforcementArea", 1002, IFC4_IfcStructuralLoadOrResult_type); - IFC4_IfcSurfaceStyle_type = new entity("IfcSurfaceStyle", 1004, IFC4_IfcPresentationStyle_type); - IFC4_IfcSurfaceStyleLighting_type = new entity("IfcSurfaceStyleLighting", 1006, IFC4_IfcPresentationItem_type); - IFC4_IfcSurfaceStyleRefraction_type = new entity("IfcSurfaceStyleRefraction", 1007, IFC4_IfcPresentationItem_type); - IFC4_IfcSurfaceStyleShading_type = new entity("IfcSurfaceStyleShading", 1009, IFC4_IfcPresentationItem_type); - IFC4_IfcSurfaceStyleWithTextures_type = new entity("IfcSurfaceStyleWithTextures", 1010, IFC4_IfcPresentationItem_type); - IFC4_IfcSurfaceTexture_type = new entity("IfcSurfaceTexture", 1011, IFC4_IfcPresentationItem_type); - IFC4_IfcTable_type = new entity("IfcTable", 1023, 0); - IFC4_IfcTableColumn_type = new entity("IfcTableColumn", 1024, 0); - IFC4_IfcTableRow_type = new entity("IfcTableRow", 1025, 0); - IFC4_IfcTaskTime_type = new entity("IfcTaskTime", 1031, IFC4_IfcSchedulingTime_type); - IFC4_IfcTaskTimeRecurring_type = new entity("IfcTaskTimeRecurring", 1032, IFC4_IfcTaskTime_type); - IFC4_IfcTelecomAddress_type = new entity("IfcTelecomAddress", 1035, IFC4_IfcAddress_type); - IFC4_IfcTextStyle_type = new entity("IfcTextStyle", 1054, IFC4_IfcPresentationStyle_type); - IFC4_IfcTextStyleForDefinedFont_type = new entity("IfcTextStyleForDefinedFont", 1056, IFC4_IfcPresentationItem_type); - IFC4_IfcTextStyleTextModel_type = new entity("IfcTextStyleTextModel", 1057, IFC4_IfcPresentationItem_type); - IFC4_IfcTextureCoordinate_type = new entity("IfcTextureCoordinate", 1059, IFC4_IfcPresentationItem_type); - IFC4_IfcTextureCoordinateGenerator_type = new entity("IfcTextureCoordinateGenerator", 1060, IFC4_IfcTextureCoordinate_type); - IFC4_IfcTextureMap_type = new entity("IfcTextureMap", 1061, IFC4_IfcTextureCoordinate_type); - IFC4_IfcTextureVertex_type = new entity("IfcTextureVertex", 1062, IFC4_IfcPresentationItem_type); - IFC4_IfcTextureVertexList_type = new entity("IfcTextureVertexList", 1063, IFC4_IfcPresentationItem_type); - IFC4_IfcTimePeriod_type = new entity("IfcTimePeriod", 1073, 0); - IFC4_IfcTimeSeries_type = new entity("IfcTimeSeries", 1074, 0); - IFC4_IfcTimeSeriesValue_type = new entity("IfcTimeSeriesValue", 1076, 0); - IFC4_IfcTopologicalRepresentationItem_type = new entity("IfcTopologicalRepresentationItem", 1078, IFC4_IfcRepresentationItem_type); - IFC4_IfcTopologyRepresentation_type = new entity("IfcTopologyRepresentation", 1079, IFC4_IfcShapeModel_type); - IFC4_IfcUnitAssignment_type = new entity("IfcUnitAssignment", 1109, 0); - IFC4_IfcVertex_type = new entity("IfcVertex", 1120, IFC4_IfcTopologicalRepresentationItem_type); - IFC4_IfcVertexPoint_type = new entity("IfcVertexPoint", 1122, IFC4_IfcVertex_type); - IFC4_IfcVirtualGridIntersection_type = new entity("IfcVirtualGridIntersection", 1127, 0); - IFC4_IfcWorkTime_type = new entity("IfcWorkTime", 1162, IFC4_IfcSchedulingTime_type); + IFC4_IfcActorRole_type = new entity("IfcActorRole", false, 7, 0); + IFC4_IfcAddress_type = new entity("IfcAddress", true, 12, 0); + IFC4_IfcApplication_type = new entity("IfcApplication", false, 35, 0); + IFC4_IfcAppliedValue_type = new entity("IfcAppliedValue", false, 36, 0); + IFC4_IfcApproval_type = new entity("IfcApproval", false, 38, 0); + IFC4_IfcBoundaryCondition_type = new entity("IfcBoundaryCondition", true, 74, 0); + IFC4_IfcBoundaryEdgeCondition_type = new entity("IfcBoundaryEdgeCondition", false, 76, IFC4_IfcBoundaryCondition_type); + IFC4_IfcBoundaryFaceCondition_type = new entity("IfcBoundaryFaceCondition", false, 77, IFC4_IfcBoundaryCondition_type); + IFC4_IfcBoundaryNodeCondition_type = new entity("IfcBoundaryNodeCondition", false, 78, IFC4_IfcBoundaryCondition_type); + IFC4_IfcBoundaryNodeConditionWarping_type = new entity("IfcBoundaryNodeConditionWarping", false, 79, IFC4_IfcBoundaryNodeCondition_type); + IFC4_IfcConnectionGeometry_type = new entity("IfcConnectionGeometry", true, 179, 0); + IFC4_IfcConnectionPointGeometry_type = new entity("IfcConnectionPointGeometry", false, 181, IFC4_IfcConnectionGeometry_type); + IFC4_IfcConnectionSurfaceGeometry_type = new entity("IfcConnectionSurfaceGeometry", false, 182, IFC4_IfcConnectionGeometry_type); + IFC4_IfcConnectionVolumeGeometry_type = new entity("IfcConnectionVolumeGeometry", false, 184, IFC4_IfcConnectionGeometry_type); + IFC4_IfcConstraint_type = new entity("IfcConstraint", true, 185, 0); + IFC4_IfcCoordinateOperation_type = new entity("IfcCoordinateOperation", true, 213, 0); + IFC4_IfcCoordinateReferenceSystem_type = new entity("IfcCoordinateReferenceSystem", true, 214, 0); + IFC4_IfcCostValue_type = new entity("IfcCostValue", false, 220, IFC4_IfcAppliedValue_type); + IFC4_IfcDerivedUnit_type = new entity("IfcDerivedUnit", false, 261, 0); + IFC4_IfcDerivedUnitElement_type = new entity("IfcDerivedUnitElement", false, 262, 0); + IFC4_IfcDimensionalExponents_type = new entity("IfcDimensionalExponents", false, 265, 0); + IFC4_IfcExternalInformation_type = new entity("IfcExternalInformation", true, 375, 0); + IFC4_IfcExternalReference_type = new entity("IfcExternalReference", true, 379, 0); + IFC4_IfcExternallyDefinedHatchStyle_type = new entity("IfcExternallyDefinedHatchStyle", false, 376, IFC4_IfcExternalReference_type); + IFC4_IfcExternallyDefinedSurfaceStyle_type = new entity("IfcExternallyDefinedSurfaceStyle", false, 377, IFC4_IfcExternalReference_type); + IFC4_IfcExternallyDefinedTextFont_type = new entity("IfcExternallyDefinedTextFont", false, 378, IFC4_IfcExternalReference_type); + IFC4_IfcGridAxis_type = new entity("IfcGridAxis", false, 461, 0); + IFC4_IfcIrregularTimeSeriesValue_type = new entity("IfcIrregularTimeSeriesValue", false, 497, 0); + IFC4_IfcLibraryInformation_type = new entity("IfcLibraryInformation", false, 517, IFC4_IfcExternalInformation_type); + IFC4_IfcLibraryReference_type = new entity("IfcLibraryReference", false, 518, IFC4_IfcExternalReference_type); + IFC4_IfcLightDistributionData_type = new entity("IfcLightDistributionData", false, 521, 0); + IFC4_IfcLightIntensityDistribution_type = new entity("IfcLightIntensityDistribution", false, 527, 0); + IFC4_IfcMapConversion_type = new entity("IfcMapConversion", false, 552, IFC4_IfcCoordinateOperation_type); + IFC4_IfcMaterialClassificationRelationship_type = new entity("IfcMaterialClassificationRelationship", false, 559, 0); + IFC4_IfcMaterialDefinition_type = new entity("IfcMaterialDefinition", true, 562, 0); + IFC4_IfcMaterialLayer_type = new entity("IfcMaterialLayer", false, 564, IFC4_IfcMaterialDefinition_type); + IFC4_IfcMaterialLayerSet_type = new entity("IfcMaterialLayerSet", false, 565, IFC4_IfcMaterialDefinition_type); + IFC4_IfcMaterialLayerWithOffsets_type = new entity("IfcMaterialLayerWithOffsets", false, 567, IFC4_IfcMaterialLayer_type); + IFC4_IfcMaterialList_type = new entity("IfcMaterialList", false, 568, 0); + IFC4_IfcMaterialProfile_type = new entity("IfcMaterialProfile", false, 569, IFC4_IfcMaterialDefinition_type); + IFC4_IfcMaterialProfileSet_type = new entity("IfcMaterialProfileSet", false, 570, IFC4_IfcMaterialDefinition_type); + IFC4_IfcMaterialProfileWithOffsets_type = new entity("IfcMaterialProfileWithOffsets", false, 573, IFC4_IfcMaterialProfile_type); + IFC4_IfcMaterialUsageDefinition_type = new entity("IfcMaterialUsageDefinition", true, 577, 0); + IFC4_IfcMeasureWithUnit_type = new entity("IfcMeasureWithUnit", false, 579, 0); + IFC4_IfcMetric_type = new entity("IfcMetric", false, 590, IFC4_IfcConstraint_type); + IFC4_IfcMonetaryUnit_type = new entity("IfcMonetaryUnit", false, 604, 0); + IFC4_IfcNamedUnit_type = new entity("IfcNamedUnit", true, 609, 0); + IFC4_IfcObjectPlacement_type = new entity("IfcObjectPlacement", true, 618, 0); + IFC4_IfcObjective_type = new entity("IfcObjective", false, 616, IFC4_IfcConstraint_type); + IFC4_IfcOrganization_type = new entity("IfcOrganization", false, 629, 0); + IFC4_IfcOwnerHistory_type = new entity("IfcOwnerHistory", false, 636, 0); + IFC4_IfcPerson_type = new entity("IfcPerson", false, 647, 0); + IFC4_IfcPersonAndOrganization_type = new entity("IfcPersonAndOrganization", false, 648, 0); + IFC4_IfcPhysicalQuantity_type = new entity("IfcPhysicalQuantity", true, 652, 0); + IFC4_IfcPhysicalSimpleQuantity_type = new entity("IfcPhysicalSimpleQuantity", true, 653, IFC4_IfcPhysicalQuantity_type); + IFC4_IfcPostalAddress_type = new entity("IfcPostalAddress", false, 688, IFC4_IfcAddress_type); + IFC4_IfcPresentationItem_type = new entity("IfcPresentationItem", true, 698, 0); + IFC4_IfcPresentationLayerAssignment_type = new entity("IfcPresentationLayerAssignment", false, 699, 0); + IFC4_IfcPresentationLayerWithStyle_type = new entity("IfcPresentationLayerWithStyle", false, 700, IFC4_IfcPresentationLayerAssignment_type); + IFC4_IfcPresentationStyle_type = new entity("IfcPresentationStyle", true, 701, 0); + IFC4_IfcPresentationStyleAssignment_type = new entity("IfcPresentationStyleAssignment", false, 702, 0); + IFC4_IfcProductRepresentation_type = new entity("IfcProductRepresentation", true, 712, 0); + IFC4_IfcProfileDef_type = new entity("IfcProfileDef", false, 715, 0); + IFC4_IfcProjectedCRS_type = new entity("IfcProjectedCRS", false, 719, IFC4_IfcCoordinateReferenceSystem_type); + IFC4_IfcPropertyAbstraction_type = new entity("IfcPropertyAbstraction", true, 727, 0); + IFC4_IfcPropertyEnumeration_type = new entity("IfcPropertyEnumeration", false, 732, IFC4_IfcPropertyAbstraction_type); + IFC4_IfcQuantityArea_type = new entity("IfcQuantityArea", false, 755, IFC4_IfcPhysicalSimpleQuantity_type); + IFC4_IfcQuantityCount_type = new entity("IfcQuantityCount", false, 756, IFC4_IfcPhysicalSimpleQuantity_type); + IFC4_IfcQuantityLength_type = new entity("IfcQuantityLength", false, 757, IFC4_IfcPhysicalSimpleQuantity_type); + IFC4_IfcQuantityTime_type = new entity("IfcQuantityTime", false, 759, IFC4_IfcPhysicalSimpleQuantity_type); + IFC4_IfcQuantityVolume_type = new entity("IfcQuantityVolume", false, 760, IFC4_IfcPhysicalSimpleQuantity_type); + IFC4_IfcQuantityWeight_type = new entity("IfcQuantityWeight", false, 761, IFC4_IfcPhysicalSimpleQuantity_type); + IFC4_IfcRecurrencePattern_type = new entity("IfcRecurrencePattern", false, 780, 0); + IFC4_IfcReference_type = new entity("IfcReference", false, 782, 0); + IFC4_IfcRepresentation_type = new entity("IfcRepresentation", true, 846, 0); + IFC4_IfcRepresentationContext_type = new entity("IfcRepresentationContext", true, 847, 0); + IFC4_IfcRepresentationItem_type = new entity("IfcRepresentationItem", true, 848, 0); + IFC4_IfcRepresentationMap_type = new entity("IfcRepresentationMap", false, 849, 0); + IFC4_IfcResourceLevelRelationship_type = new entity("IfcResourceLevelRelationship", true, 853, 0); + IFC4_IfcRoot_type = new entity("IfcRoot", true, 865, 0); + IFC4_IfcSIUnit_type = new entity("IfcSIUnit", false, 902, IFC4_IfcNamedUnit_type); + IFC4_IfcSchedulingTime_type = new entity("IfcSchedulingTime", true, 874, 0); + IFC4_IfcShapeAspect_type = new entity("IfcShapeAspect", false, 890, 0); + IFC4_IfcShapeModel_type = new entity("IfcShapeModel", true, 891, IFC4_IfcRepresentation_type); + IFC4_IfcShapeRepresentation_type = new entity("IfcShapeRepresentation", false, 892, IFC4_IfcShapeModel_type); + IFC4_IfcStructuralConnectionCondition_type = new entity("IfcStructuralConnectionCondition", true, 956, 0); + IFC4_IfcStructuralLoad_type = new entity("IfcStructuralLoad", true, 966, 0); + IFC4_IfcStructuralLoadConfiguration_type = new entity("IfcStructuralLoadConfiguration", false, 968, IFC4_IfcStructuralLoad_type); + IFC4_IfcStructuralLoadOrResult_type = new entity("IfcStructuralLoadOrResult", true, 971, IFC4_IfcStructuralLoad_type); + IFC4_IfcStructuralLoadStatic_type = new entity("IfcStructuralLoadStatic", true, 977, IFC4_IfcStructuralLoadOrResult_type); + IFC4_IfcStructuralLoadTemperature_type = new entity("IfcStructuralLoadTemperature", false, 978, IFC4_IfcStructuralLoadStatic_type); + IFC4_IfcStyleModel_type = new entity("IfcStyleModel", true, 996, IFC4_IfcRepresentation_type); + IFC4_IfcStyledItem_type = new entity("IfcStyledItem", false, 994, IFC4_IfcRepresentationItem_type); + IFC4_IfcStyledRepresentation_type = new entity("IfcStyledRepresentation", false, 995, IFC4_IfcStyleModel_type); + IFC4_IfcSurfaceReinforcementArea_type = new entity("IfcSurfaceReinforcementArea", false, 1009, IFC4_IfcStructuralLoadOrResult_type); + IFC4_IfcSurfaceStyle_type = new entity("IfcSurfaceStyle", false, 1011, IFC4_IfcPresentationStyle_type); + IFC4_IfcSurfaceStyleLighting_type = new entity("IfcSurfaceStyleLighting", false, 1013, IFC4_IfcPresentationItem_type); + IFC4_IfcSurfaceStyleRefraction_type = new entity("IfcSurfaceStyleRefraction", false, 1014, IFC4_IfcPresentationItem_type); + IFC4_IfcSurfaceStyleShading_type = new entity("IfcSurfaceStyleShading", false, 1016, IFC4_IfcPresentationItem_type); + IFC4_IfcSurfaceStyleWithTextures_type = new entity("IfcSurfaceStyleWithTextures", false, 1017, IFC4_IfcPresentationItem_type); + IFC4_IfcSurfaceTexture_type = new entity("IfcSurfaceTexture", true, 1018, IFC4_IfcPresentationItem_type); + IFC4_IfcTable_type = new entity("IfcTable", false, 1030, 0); + IFC4_IfcTableColumn_type = new entity("IfcTableColumn", false, 1031, 0); + IFC4_IfcTableRow_type = new entity("IfcTableRow", false, 1032, 0); + IFC4_IfcTaskTime_type = new entity("IfcTaskTime", false, 1038, IFC4_IfcSchedulingTime_type); + IFC4_IfcTaskTimeRecurring_type = new entity("IfcTaskTimeRecurring", false, 1039, IFC4_IfcTaskTime_type); + IFC4_IfcTelecomAddress_type = new entity("IfcTelecomAddress", false, 1042, IFC4_IfcAddress_type); + IFC4_IfcTextStyle_type = new entity("IfcTextStyle", false, 1061, IFC4_IfcPresentationStyle_type); + IFC4_IfcTextStyleForDefinedFont_type = new entity("IfcTextStyleForDefinedFont", false, 1063, IFC4_IfcPresentationItem_type); + IFC4_IfcTextStyleTextModel_type = new entity("IfcTextStyleTextModel", false, 1064, IFC4_IfcPresentationItem_type); + IFC4_IfcTextureCoordinate_type = new entity("IfcTextureCoordinate", true, 1066, IFC4_IfcPresentationItem_type); + IFC4_IfcTextureCoordinateGenerator_type = new entity("IfcTextureCoordinateGenerator", false, 1067, IFC4_IfcTextureCoordinate_type); + IFC4_IfcTextureMap_type = new entity("IfcTextureMap", false, 1068, IFC4_IfcTextureCoordinate_type); + IFC4_IfcTextureVertex_type = new entity("IfcTextureVertex", false, 1069, IFC4_IfcPresentationItem_type); + IFC4_IfcTextureVertexList_type = new entity("IfcTextureVertexList", false, 1070, IFC4_IfcPresentationItem_type); + IFC4_IfcTimePeriod_type = new entity("IfcTimePeriod", false, 1080, 0); + IFC4_IfcTimeSeries_type = new entity("IfcTimeSeries", true, 1081, 0); + IFC4_IfcTimeSeriesValue_type = new entity("IfcTimeSeriesValue", false, 1083, 0); + IFC4_IfcTopologicalRepresentationItem_type = new entity("IfcTopologicalRepresentationItem", true, 1085, IFC4_IfcRepresentationItem_type); + IFC4_IfcTopologyRepresentation_type = new entity("IfcTopologyRepresentation", false, 1086, IFC4_IfcShapeModel_type); + IFC4_IfcUnitAssignment_type = new entity("IfcUnitAssignment", false, 1117, 0); + IFC4_IfcVertex_type = new entity("IfcVertex", false, 1128, IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcVertexPoint_type = new entity("IfcVertexPoint", false, 1130, IFC4_IfcVertex_type); + IFC4_IfcVirtualGridIntersection_type = new entity("IfcVirtualGridIntersection", false, 1135, 0); + IFC4_IfcWorkTime_type = new entity("IfcWorkTime", false, 1170, IFC4_IfcSchedulingTime_type); { std::vector items; items.reserve(3); items.push_back(IFC4_IfcOrganization_type); @@ -4951,29 +4974,29 @@ IfcParse::schema_definition* IFC4_populate_schema() { std::vector items; items.reserve(2); items.push_back(IFC4_IfcRepresentation_type); items.push_back(IFC4_IfcRepresentationItem_type); - IFC4_IfcLayeredItem_type = new select_type("IfcLayeredItem", 511, items); + IFC4_IfcLayeredItem_type = new select_type("IfcLayeredItem", 514, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcLibraryInformation_type); items.push_back(IFC4_IfcLibraryReference_type); - IFC4_IfcLibrarySelect_type = new select_type("IfcLibrarySelect", 516, items); + IFC4_IfcLibrarySelect_type = new select_type("IfcLibrarySelect", 519, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcExternalReference_type); items.push_back(IFC4_IfcLightIntensityDistribution_type); - IFC4_IfcLightDistributionDataSourceSelect_type = new select_type("IfcLightDistributionDataSourceSelect", 519, items); + IFC4_IfcLightDistributionDataSourceSelect_type = new select_type("IfcLightDistributionDataSourceSelect", 522, items); } - IFC4_IfcLineIndex_type = new type_declaration("IfcLineIndex", 536, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcPositiveInteger_type))); + IFC4_IfcLineIndex_type = new type_declaration("IfcLineIndex", 539, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcPositiveInteger_type))); { std::vector items; items.reserve(3); items.push_back(IFC4_IfcMaterialDefinition_type); items.push_back(IFC4_IfcMaterialList_type); items.push_back(IFC4_IfcMaterialUsageDefinition_type); - IFC4_IfcMaterialSelect_type = new select_type("IfcMaterialSelect", 573, items); + IFC4_IfcMaterialSelect_type = new select_type("IfcMaterialSelect", 576, items); } - IFC4_IfcNormalisedRatioMeasure_type = new type_declaration("IfcNormalisedRatioMeasure", 608, new named_type(IFC4_IfcRatioMeasure_type)); + IFC4_IfcNormalisedRatioMeasure_type = new type_declaration("IfcNormalisedRatioMeasure", 611, new named_type(IFC4_IfcRatioMeasure_type)); { std::vector items; items.reserve(9); items.push_back(IFC4_IfcAddress_type); @@ -4985,17 +5008,18 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back(IFC4_IfcPersonAndOrganization_type); items.push_back(IFC4_IfcTable_type); items.push_back(IFC4_IfcTimeSeries_type); - IFC4_IfcObjectReferenceSelect_type = new select_type("IfcObjectReferenceSelect", 616, items); + IFC4_IfcObjectReferenceSelect_type = new select_type("IfcObjectReferenceSelect", 619, items); } - IFC4_IfcPositiveRatioMeasure_type = new type_declaration("IfcPositiveRatioMeasure", 683, new named_type(IFC4_IfcRatioMeasure_type)); + IFC4_IfcPositiveRatioMeasure_type = new type_declaration("IfcPositiveRatioMeasure", 687, new named_type(IFC4_IfcRatioMeasure_type)); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcArcIndex_type); items.push_back(IFC4_IfcLineIndex_type); - IFC4_IfcSegmentIndexSelect_type = new select_type("IfcSegmentIndexSelect", 876, items); + IFC4_IfcSegmentIndexSelect_type = new select_type("IfcSegmentIndexSelect", 882, items); } { - std::vector items; items.reserve(13); + std::vector items; items.reserve(14); + items.push_back(IFC4_IfcBinary_type); items.push_back(IFC4_IfcBoolean_type); items.push_back(IFC4_IfcDate_type); items.push_back(IFC4_IfcDateTime_type); @@ -5009,7 +5033,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back(IFC4_IfcText_type); items.push_back(IFC4_IfcTime_type); items.push_back(IFC4_IfcTimeStamp_type); - IFC4_IfcSimpleValue_type = new select_type("IfcSimpleValue", 893, items); + IFC4_IfcSimpleValue_type = new select_type("IfcSimpleValue", 899, items); } { std::vector items; items.reserve(6); @@ -5019,19 +5043,19 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back(IFC4_IfcPositiveLengthMeasure_type); items.push_back(IFC4_IfcPositiveRatioMeasure_type); items.push_back(IFC4_IfcRatioMeasure_type); - IFC4_IfcSizeSelect_type = new select_type("IfcSizeSelect", 898, items); + IFC4_IfcSizeSelect_type = new select_type("IfcSizeSelect", 904, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcSpecularExponent_type); items.push_back(IFC4_IfcSpecularRoughness_type); - IFC4_IfcSpecularHighlightSelect_type = new select_type("IfcSpecularHighlightSelect", 931, items); + IFC4_IfcSpecularHighlightSelect_type = new select_type("IfcSpecularHighlightSelect", 937, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcPresentationStyle_type); items.push_back(IFC4_IfcPresentationStyleAssignment_type); - IFC4_IfcStyleAssignmentSelect_type = new select_type("IfcStyleAssignmentSelect", 987, items); + IFC4_IfcStyleAssignmentSelect_type = new select_type("IfcStyleAssignmentSelect", 993, items); } { std::vector items; items.reserve(5); @@ -5040,152 +5064,152 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back(IFC4_IfcSurfaceStyleRefraction_type); items.push_back(IFC4_IfcSurfaceStyleShading_type); items.push_back(IFC4_IfcSurfaceStyleWithTextures_type); - IFC4_IfcSurfaceStyleElementSelect_type = new select_type("IfcSurfaceStyleElementSelect", 1005, items); + IFC4_IfcSurfaceStyleElementSelect_type = new select_type("IfcSurfaceStyleElementSelect", 1012, items); } { std::vector items; items.reserve(3); items.push_back(IFC4_IfcDerivedUnit_type); items.push_back(IFC4_IfcMonetaryUnit_type); items.push_back(IFC4_IfcNamedUnit_type); - IFC4_IfcUnit_type = new select_type("IfcUnit", 1102, items); + IFC4_IfcUnit_type = new select_type("IfcUnit", 1110, items); } - IFC4_IfcApprovalRelationship_type = new entity("IfcApprovalRelationship", 39, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcArbitraryClosedProfileDef_type = new entity("IfcArbitraryClosedProfileDef", 40, IFC4_IfcProfileDef_type); - IFC4_IfcArbitraryOpenProfileDef_type = new entity("IfcArbitraryOpenProfileDef", 41, IFC4_IfcProfileDef_type); - IFC4_IfcArbitraryProfileDefWithVoids_type = new entity("IfcArbitraryProfileDefWithVoids", 42, IFC4_IfcArbitraryClosedProfileDef_type); - IFC4_IfcBlobTexture_type = new entity("IfcBlobTexture", 64, IFC4_IfcSurfaceTexture_type); - IFC4_IfcCenterLineProfileDef_type = new entity("IfcCenterLineProfileDef", 128, IFC4_IfcArbitraryOpenProfileDef_type); - IFC4_IfcClassification_type = new entity("IfcClassification", 141, IFC4_IfcExternalInformation_type); - IFC4_IfcClassificationReference_type = new entity("IfcClassificationReference", 142, IFC4_IfcExternalReference_type); - IFC4_IfcColourRgbList_type = new entity("IfcColourRgbList", 152, IFC4_IfcPresentationItem_type); - IFC4_IfcColourSpecification_type = new entity("IfcColourSpecification", 153, IFC4_IfcPresentationItem_type); - IFC4_IfcCompositeProfileDef_type = new entity("IfcCompositeProfileDef", 168, IFC4_IfcProfileDef_type); - IFC4_IfcConnectedFaceSet_type = new entity("IfcConnectedFaceSet", 177, IFC4_IfcTopologicalRepresentationItem_type); - IFC4_IfcConnectionCurveGeometry_type = new entity("IfcConnectionCurveGeometry", 178, IFC4_IfcConnectionGeometry_type); - IFC4_IfcConnectionPointEccentricity_type = new entity("IfcConnectionPointEccentricity", 180, IFC4_IfcConnectionPointGeometry_type); - IFC4_IfcContextDependentUnit_type = new entity("IfcContextDependentUnit", 200, IFC4_IfcNamedUnit_type); - IFC4_IfcConversionBasedUnit_type = new entity("IfcConversionBasedUnit", 205, IFC4_IfcNamedUnit_type); - IFC4_IfcConversionBasedUnitWithOffset_type = new entity("IfcConversionBasedUnitWithOffset", 206, IFC4_IfcConversionBasedUnit_type); - IFC4_IfcCurrencyRelationship_type = new entity("IfcCurrencyRelationship", 232, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcCurveStyle_type = new entity("IfcCurveStyle", 244, IFC4_IfcPresentationStyle_type); - IFC4_IfcCurveStyleFont_type = new entity("IfcCurveStyleFont", 245, IFC4_IfcPresentationItem_type); - IFC4_IfcCurveStyleFontAndScaling_type = new entity("IfcCurveStyleFontAndScaling", 246, IFC4_IfcPresentationItem_type); - IFC4_IfcCurveStyleFontPattern_type = new entity("IfcCurveStyleFontPattern", 247, IFC4_IfcPresentationItem_type); - IFC4_IfcDerivedProfileDef_type = new entity("IfcDerivedProfileDef", 260, IFC4_IfcProfileDef_type); - IFC4_IfcDocumentInformation_type = new entity("IfcDocumentInformation", 287, IFC4_IfcExternalInformation_type); - IFC4_IfcDocumentInformationRelationship_type = new entity("IfcDocumentInformationRelationship", 288, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcDocumentReference_type = new entity("IfcDocumentReference", 289, IFC4_IfcExternalReference_type); - IFC4_IfcEdge_type = new entity("IfcEdge", 318, IFC4_IfcTopologicalRepresentationItem_type); - IFC4_IfcEdgeCurve_type = new entity("IfcEdgeCurve", 319, IFC4_IfcEdge_type); - IFC4_IfcEventTime_type = new entity("IfcEventTime", 370, IFC4_IfcSchedulingTime_type); - IFC4_IfcExtendedProperties_type = new entity("IfcExtendedProperties", 374, IFC4_IfcPropertyAbstraction_type); - IFC4_IfcExternalReferenceRelationship_type = new entity("IfcExternalReferenceRelationship", 380, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcFace_type = new entity("IfcFace", 386, IFC4_IfcTopologicalRepresentationItem_type); - IFC4_IfcFaceBound_type = new entity("IfcFaceBound", 388, IFC4_IfcTopologicalRepresentationItem_type); - IFC4_IfcFaceOuterBound_type = new entity("IfcFaceOuterBound", 389, IFC4_IfcFaceBound_type); - IFC4_IfcFaceSurface_type = new entity("IfcFaceSurface", 390, IFC4_IfcFace_type); - IFC4_IfcFailureConnectionCondition_type = new entity("IfcFailureConnectionCondition", 393, IFC4_IfcStructuralConnectionCondition_type); - IFC4_IfcFillAreaStyle_type = new entity("IfcFillAreaStyle", 403, IFC4_IfcPresentationStyle_type); - IFC4_IfcGeometricRepresentationContext_type = new entity("IfcGeometricRepresentationContext", 453, IFC4_IfcRepresentationContext_type); - IFC4_IfcGeometricRepresentationItem_type = new entity("IfcGeometricRepresentationItem", 454, IFC4_IfcRepresentationItem_type); - IFC4_IfcGeometricRepresentationSubContext_type = new entity("IfcGeometricRepresentationSubContext", 455, IFC4_IfcGeometricRepresentationContext_type); - IFC4_IfcGeometricSet_type = new entity("IfcGeometricSet", 456, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcGridPlacement_type = new entity("IfcGridPlacement", 462, IFC4_IfcObjectPlacement_type); - IFC4_IfcHalfSpaceSolid_type = new entity("IfcHalfSpaceSolid", 466, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcImageTexture_type = new entity("IfcImageTexture", 478, IFC4_IfcSurfaceTexture_type); - IFC4_IfcIndexedColourMap_type = new entity("IfcIndexedColourMap", 479, IFC4_IfcPresentationItem_type); - IFC4_IfcIndexedTextureMap_type = new entity("IfcIndexedTextureMap", 481, IFC4_IfcTextureCoordinate_type); - IFC4_IfcIndexedTriangleTextureMap_type = new entity("IfcIndexedTriangleTextureMap", 482, IFC4_IfcIndexedTextureMap_type); - IFC4_IfcIrregularTimeSeries_type = new entity("IfcIrregularTimeSeries", 493, IFC4_IfcTimeSeries_type); - IFC4_IfcLagTime_type = new entity("IfcLagTime", 506, IFC4_IfcSchedulingTime_type); - IFC4_IfcLightSource_type = new entity("IfcLightSource", 525, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcLightSourceAmbient_type = new entity("IfcLightSourceAmbient", 526, IFC4_IfcLightSource_type); - IFC4_IfcLightSourceDirectional_type = new entity("IfcLightSourceDirectional", 527, IFC4_IfcLightSource_type); - IFC4_IfcLightSourceGoniometric_type = new entity("IfcLightSourceGoniometric", 528, IFC4_IfcLightSource_type); - IFC4_IfcLightSourcePositional_type = new entity("IfcLightSourcePositional", 529, IFC4_IfcLightSource_type); - IFC4_IfcLightSourceSpot_type = new entity("IfcLightSourceSpot", 530, IFC4_IfcLightSourcePositional_type); - IFC4_IfcLocalPlacement_type = new entity("IfcLocalPlacement", 538, IFC4_IfcObjectPlacement_type); - IFC4_IfcLoop_type = new entity("IfcLoop", 541, IFC4_IfcTopologicalRepresentationItem_type); - IFC4_IfcMappedItem_type = new entity("IfcMappedItem", 550, IFC4_IfcRepresentationItem_type); - IFC4_IfcMaterial_type = new entity("IfcMaterial", 555, IFC4_IfcMaterialDefinition_type); - IFC4_IfcMaterialConstituent_type = new entity("IfcMaterialConstituent", 557, IFC4_IfcMaterialDefinition_type); - IFC4_IfcMaterialConstituentSet_type = new entity("IfcMaterialConstituentSet", 558, IFC4_IfcMaterialDefinition_type); - IFC4_IfcMaterialDefinitionRepresentation_type = new entity("IfcMaterialDefinitionRepresentation", 560, IFC4_IfcProductRepresentation_type); - IFC4_IfcMaterialLayerSetUsage_type = new entity("IfcMaterialLayerSetUsage", 563, IFC4_IfcMaterialUsageDefinition_type); - IFC4_IfcMaterialProfileSetUsage_type = new entity("IfcMaterialProfileSetUsage", 568, IFC4_IfcMaterialUsageDefinition_type); - IFC4_IfcMaterialProfileSetUsageTapering_type = new entity("IfcMaterialProfileSetUsageTapering", 569, IFC4_IfcMaterialProfileSetUsage_type); - IFC4_IfcMaterialProperties_type = new entity("IfcMaterialProperties", 571, IFC4_IfcExtendedProperties_type); - IFC4_IfcMaterialRelationship_type = new entity("IfcMaterialRelationship", 572, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcMirroredProfileDef_type = new entity("IfcMirroredProfileDef", 589, IFC4_IfcDerivedProfileDef_type); - IFC4_IfcObjectDefinition_type = new entity("IfcObjectDefinition", 612, IFC4_IfcRoot_type); - IFC4_IfcOpenShell_type = new entity("IfcOpenShell", 625, IFC4_IfcConnectedFaceSet_type); - IFC4_IfcOrganizationRelationship_type = new entity("IfcOrganizationRelationship", 627, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcOrientedEdge_type = new entity("IfcOrientedEdge", 628, IFC4_IfcEdge_type); - IFC4_IfcParameterizedProfileDef_type = new entity("IfcParameterizedProfileDef", 634, IFC4_IfcProfileDef_type); - IFC4_IfcPath_type = new entity("IfcPath", 636, IFC4_IfcTopologicalRepresentationItem_type); - IFC4_IfcPhysicalComplexQuantity_type = new entity("IfcPhysicalComplexQuantity", 647, IFC4_IfcPhysicalQuantity_type); - IFC4_IfcPixelTexture_type = new entity("IfcPixelTexture", 661, IFC4_IfcSurfaceTexture_type); - IFC4_IfcPlacement_type = new entity("IfcPlacement", 662, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcPlanarExtent_type = new entity("IfcPlanarExtent", 664, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcPoint_type = new entity("IfcPoint", 672, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcPointOnCurve_type = new entity("IfcPointOnCurve", 673, IFC4_IfcPoint_type); - IFC4_IfcPointOnSurface_type = new entity("IfcPointOnSurface", 674, IFC4_IfcPoint_type); - IFC4_IfcPolyLoop_type = new entity("IfcPolyLoop", 678, IFC4_IfcLoop_type); - IFC4_IfcPolygonalBoundedHalfSpace_type = new entity("IfcPolygonalBoundedHalfSpace", 676, IFC4_IfcHalfSpaceSolid_type); - IFC4_IfcPreDefinedItem_type = new entity("IfcPreDefinedItem", 688, IFC4_IfcPresentationItem_type); - IFC4_IfcPreDefinedProperties_type = new entity("IfcPreDefinedProperties", 689, IFC4_IfcPropertyAbstraction_type); - IFC4_IfcPreDefinedTextFont_type = new entity("IfcPreDefinedTextFont", 691, IFC4_IfcPreDefinedItem_type); - IFC4_IfcProductDefinitionShape_type = new entity("IfcProductDefinitionShape", 706, IFC4_IfcProductRepresentation_type); - IFC4_IfcProfileProperties_type = new entity("IfcProfileProperties", 711, IFC4_IfcExtendedProperties_type); - IFC4_IfcProperty_type = new entity("IfcProperty", 721, IFC4_IfcPropertyAbstraction_type); - IFC4_IfcPropertyDefinition_type = new entity("IfcPropertyDefinition", 724, IFC4_IfcRoot_type); - IFC4_IfcPropertyDependencyRelationship_type = new entity("IfcPropertyDependencyRelationship", 725, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcPropertySetDefinition_type = new entity("IfcPropertySetDefinition", 731, IFC4_IfcPropertyDefinition_type); - IFC4_IfcPropertyTemplateDefinition_type = new entity("IfcPropertyTemplateDefinition", 739, IFC4_IfcPropertyDefinition_type); - IFC4_IfcQuantitySet_type = new entity("IfcQuantitySet", 753, IFC4_IfcPropertySetDefinition_type); - IFC4_IfcRectangleProfileDef_type = new entity("IfcRectangleProfileDef", 772, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcRegularTimeSeries_type = new entity("IfcRegularTimeSeries", 779, IFC4_IfcTimeSeries_type); - IFC4_IfcReinforcementBarProperties_type = new entity("IfcReinforcementBarProperties", 780, IFC4_IfcPreDefinedProperties_type); - IFC4_IfcRelationship_type = new entity("IfcRelationship", 808, IFC4_IfcRoot_type); - IFC4_IfcResourceApprovalRelationship_type = new entity("IfcResourceApprovalRelationship", 846, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcResourceConstraintRelationship_type = new entity("IfcResourceConstraintRelationship", 847, IFC4_IfcResourceLevelRelationship_type); - IFC4_IfcResourceTime_type = new entity("IfcResourceTime", 851, IFC4_IfcSchedulingTime_type); - IFC4_IfcRoundedRectangleProfileDef_type = new entity("IfcRoundedRectangleProfileDef", 865, IFC4_IfcRectangleProfileDef_type); - IFC4_IfcSectionProperties_type = new entity("IfcSectionProperties", 873, IFC4_IfcPreDefinedProperties_type); - IFC4_IfcSectionReinforcementProperties_type = new entity("IfcSectionReinforcementProperties", 874, IFC4_IfcPreDefinedProperties_type); - IFC4_IfcSectionedSpine_type = new entity("IfcSectionedSpine", 871, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcShellBasedSurfaceModel_type = new entity("IfcShellBasedSurfaceModel", 889, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcSimpleProperty_type = new entity("IfcSimpleProperty", 890, IFC4_IfcProperty_type); - IFC4_IfcSlippageConnectionCondition_type = new entity("IfcSlippageConnectionCondition", 904, IFC4_IfcStructuralConnectionCondition_type); - IFC4_IfcSolidModel_type = new entity("IfcSolidModel", 909, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcStructuralLoadLinearForce_type = new entity("IfcStructuralLoadLinearForce", 964, IFC4_IfcStructuralLoadStatic_type); - IFC4_IfcStructuralLoadPlanarForce_type = new entity("IfcStructuralLoadPlanarForce", 966, IFC4_IfcStructuralLoadStatic_type); - IFC4_IfcStructuralLoadSingleDisplacement_type = new entity("IfcStructuralLoadSingleDisplacement", 967, IFC4_IfcStructuralLoadStatic_type); - IFC4_IfcStructuralLoadSingleDisplacementDistortion_type = new entity("IfcStructuralLoadSingleDisplacementDistortion", 968, IFC4_IfcStructuralLoadSingleDisplacement_type); - IFC4_IfcStructuralLoadSingleForce_type = new entity("IfcStructuralLoadSingleForce", 969, IFC4_IfcStructuralLoadStatic_type); - IFC4_IfcStructuralLoadSingleForceWarping_type = new entity("IfcStructuralLoadSingleForceWarping", 970, IFC4_IfcStructuralLoadSingleForce_type); - IFC4_IfcSubedge_type = new entity("IfcSubedge", 994, IFC4_IfcEdge_type); - IFC4_IfcSurface_type = new entity("IfcSurface", 995, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcSurfaceStyleRendering_type = new entity("IfcSurfaceStyleRendering", 1008, IFC4_IfcSurfaceStyleShading_type); - IFC4_IfcSweptAreaSolid_type = new entity("IfcSweptAreaSolid", 1012, IFC4_IfcSolidModel_type); - IFC4_IfcSweptDiskSolid_type = new entity("IfcSweptDiskSolid", 1013, IFC4_IfcSolidModel_type); - IFC4_IfcSweptDiskSolidPolygonal_type = new entity("IfcSweptDiskSolidPolygonal", 1014, IFC4_IfcSweptDiskSolid_type); - IFC4_IfcSweptSurface_type = new entity("IfcSweptSurface", 1015, IFC4_IfcSurface_type); - IFC4_IfcTShapeProfileDef_type = new entity("IfcTShapeProfileDef", 1094, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcTessellatedItem_type = new entity("IfcTessellatedItem", 1045, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcTextLiteral_type = new entity("IfcTextLiteral", 1051, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcTextLiteralWithExtent_type = new entity("IfcTextLiteralWithExtent", 1052, IFC4_IfcTextLiteral_type); - IFC4_IfcTextStyleFontModel_type = new entity("IfcTextStyleFontModel", 1055, IFC4_IfcPreDefinedTextFont_type); - IFC4_IfcTrapeziumProfileDef_type = new entity("IfcTrapeziumProfileDef", 1089, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcTypeObject_type = new entity("IfcTypeObject", 1098, IFC4_IfcObjectDefinition_type); - IFC4_IfcTypeProcess_type = new entity("IfcTypeProcess", 1099, IFC4_IfcTypeObject_type); - IFC4_IfcTypeProduct_type = new entity("IfcTypeProduct", 1100, IFC4_IfcTypeObject_type); - IFC4_IfcTypeResource_type = new entity("IfcTypeResource", 1101, IFC4_IfcTypeObject_type); - IFC4_IfcUShapeProfileDef_type = new entity("IfcUShapeProfileDef", 1112, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcVector_type = new entity("IfcVector", 1118, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcVertexLoop_type = new entity("IfcVertexLoop", 1121, IFC4_IfcLoop_type); - IFC4_IfcWindowStyle_type = new entity("IfcWindowStyle", 1149, IFC4_IfcTypeProduct_type); - IFC4_IfcZShapeProfileDef_type = new entity("IfcZShapeProfileDef", 1164, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcApprovalRelationship_type = new entity("IfcApprovalRelationship", false, 39, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcArbitraryClosedProfileDef_type = new entity("IfcArbitraryClosedProfileDef", false, 40, IFC4_IfcProfileDef_type); + IFC4_IfcArbitraryOpenProfileDef_type = new entity("IfcArbitraryOpenProfileDef", false, 41, IFC4_IfcProfileDef_type); + IFC4_IfcArbitraryProfileDefWithVoids_type = new entity("IfcArbitraryProfileDefWithVoids", false, 42, IFC4_IfcArbitraryClosedProfileDef_type); + IFC4_IfcBlobTexture_type = new entity("IfcBlobTexture", false, 64, IFC4_IfcSurfaceTexture_type); + IFC4_IfcCenterLineProfileDef_type = new entity("IfcCenterLineProfileDef", false, 128, IFC4_IfcArbitraryOpenProfileDef_type); + IFC4_IfcClassification_type = new entity("IfcClassification", false, 141, IFC4_IfcExternalInformation_type); + IFC4_IfcClassificationReference_type = new entity("IfcClassificationReference", false, 142, IFC4_IfcExternalReference_type); + IFC4_IfcColourRgbList_type = new entity("IfcColourRgbList", false, 152, IFC4_IfcPresentationItem_type); + IFC4_IfcColourSpecification_type = new entity("IfcColourSpecification", true, 153, IFC4_IfcPresentationItem_type); + IFC4_IfcCompositeProfileDef_type = new entity("IfcCompositeProfileDef", false, 168, IFC4_IfcProfileDef_type); + IFC4_IfcConnectedFaceSet_type = new entity("IfcConnectedFaceSet", false, 177, IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcConnectionCurveGeometry_type = new entity("IfcConnectionCurveGeometry", false, 178, IFC4_IfcConnectionGeometry_type); + IFC4_IfcConnectionPointEccentricity_type = new entity("IfcConnectionPointEccentricity", false, 180, IFC4_IfcConnectionPointGeometry_type); + IFC4_IfcContextDependentUnit_type = new entity("IfcContextDependentUnit", false, 200, IFC4_IfcNamedUnit_type); + IFC4_IfcConversionBasedUnit_type = new entity("IfcConversionBasedUnit", false, 205, IFC4_IfcNamedUnit_type); + IFC4_IfcConversionBasedUnitWithOffset_type = new entity("IfcConversionBasedUnitWithOffset", false, 206, IFC4_IfcConversionBasedUnit_type); + IFC4_IfcCurrencyRelationship_type = new entity("IfcCurrencyRelationship", false, 232, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcCurveStyle_type = new entity("IfcCurveStyle", false, 244, IFC4_IfcPresentationStyle_type); + IFC4_IfcCurveStyleFont_type = new entity("IfcCurveStyleFont", false, 245, IFC4_IfcPresentationItem_type); + IFC4_IfcCurveStyleFontAndScaling_type = new entity("IfcCurveStyleFontAndScaling", false, 246, IFC4_IfcPresentationItem_type); + IFC4_IfcCurveStyleFontPattern_type = new entity("IfcCurveStyleFontPattern", false, 247, IFC4_IfcPresentationItem_type); + IFC4_IfcDerivedProfileDef_type = new entity("IfcDerivedProfileDef", false, 260, IFC4_IfcProfileDef_type); + IFC4_IfcDocumentInformation_type = new entity("IfcDocumentInformation", false, 287, IFC4_IfcExternalInformation_type); + IFC4_IfcDocumentInformationRelationship_type = new entity("IfcDocumentInformationRelationship", false, 288, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcDocumentReference_type = new entity("IfcDocumentReference", false, 289, IFC4_IfcExternalReference_type); + IFC4_IfcEdge_type = new entity("IfcEdge", false, 318, IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcEdgeCurve_type = new entity("IfcEdgeCurve", false, 319, IFC4_IfcEdge_type); + IFC4_IfcEventTime_type = new entity("IfcEventTime", false, 370, IFC4_IfcSchedulingTime_type); + IFC4_IfcExtendedProperties_type = new entity("IfcExtendedProperties", true, 374, IFC4_IfcPropertyAbstraction_type); + IFC4_IfcExternalReferenceRelationship_type = new entity("IfcExternalReferenceRelationship", false, 380, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcFace_type = new entity("IfcFace", false, 386, IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcFaceBound_type = new entity("IfcFaceBound", false, 388, IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcFaceOuterBound_type = new entity("IfcFaceOuterBound", false, 389, IFC4_IfcFaceBound_type); + IFC4_IfcFaceSurface_type = new entity("IfcFaceSurface", false, 390, IFC4_IfcFace_type); + IFC4_IfcFailureConnectionCondition_type = new entity("IfcFailureConnectionCondition", false, 393, IFC4_IfcStructuralConnectionCondition_type); + IFC4_IfcFillAreaStyle_type = new entity("IfcFillAreaStyle", false, 403, IFC4_IfcPresentationStyle_type); + IFC4_IfcGeometricRepresentationContext_type = new entity("IfcGeometricRepresentationContext", false, 453, IFC4_IfcRepresentationContext_type); + IFC4_IfcGeometricRepresentationItem_type = new entity("IfcGeometricRepresentationItem", true, 454, IFC4_IfcRepresentationItem_type); + IFC4_IfcGeometricRepresentationSubContext_type = new entity("IfcGeometricRepresentationSubContext", false, 455, IFC4_IfcGeometricRepresentationContext_type); + IFC4_IfcGeometricSet_type = new entity("IfcGeometricSet", false, 456, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcGridPlacement_type = new entity("IfcGridPlacement", false, 462, IFC4_IfcObjectPlacement_type); + IFC4_IfcHalfSpaceSolid_type = new entity("IfcHalfSpaceSolid", false, 466, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcImageTexture_type = new entity("IfcImageTexture", false, 478, IFC4_IfcSurfaceTexture_type); + IFC4_IfcIndexedColourMap_type = new entity("IfcIndexedColourMap", false, 479, IFC4_IfcPresentationItem_type); + IFC4_IfcIndexedTextureMap_type = new entity("IfcIndexedTextureMap", true, 483, IFC4_IfcTextureCoordinate_type); + IFC4_IfcIndexedTriangleTextureMap_type = new entity("IfcIndexedTriangleTextureMap", false, 484, IFC4_IfcIndexedTextureMap_type); + IFC4_IfcIrregularTimeSeries_type = new entity("IfcIrregularTimeSeries", false, 496, IFC4_IfcTimeSeries_type); + IFC4_IfcLagTime_type = new entity("IfcLagTime", false, 509, IFC4_IfcSchedulingTime_type); + IFC4_IfcLightSource_type = new entity("IfcLightSource", true, 528, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcLightSourceAmbient_type = new entity("IfcLightSourceAmbient", false, 529, IFC4_IfcLightSource_type); + IFC4_IfcLightSourceDirectional_type = new entity("IfcLightSourceDirectional", false, 530, IFC4_IfcLightSource_type); + IFC4_IfcLightSourceGoniometric_type = new entity("IfcLightSourceGoniometric", false, 531, IFC4_IfcLightSource_type); + IFC4_IfcLightSourcePositional_type = new entity("IfcLightSourcePositional", false, 532, IFC4_IfcLightSource_type); + IFC4_IfcLightSourceSpot_type = new entity("IfcLightSourceSpot", false, 533, IFC4_IfcLightSourcePositional_type); + IFC4_IfcLocalPlacement_type = new entity("IfcLocalPlacement", false, 541, IFC4_IfcObjectPlacement_type); + IFC4_IfcLoop_type = new entity("IfcLoop", false, 544, IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcMappedItem_type = new entity("IfcMappedItem", false, 553, IFC4_IfcRepresentationItem_type); + IFC4_IfcMaterial_type = new entity("IfcMaterial", false, 558, IFC4_IfcMaterialDefinition_type); + IFC4_IfcMaterialConstituent_type = new entity("IfcMaterialConstituent", false, 560, IFC4_IfcMaterialDefinition_type); + IFC4_IfcMaterialConstituentSet_type = new entity("IfcMaterialConstituentSet", false, 561, IFC4_IfcMaterialDefinition_type); + IFC4_IfcMaterialDefinitionRepresentation_type = new entity("IfcMaterialDefinitionRepresentation", false, 563, IFC4_IfcProductRepresentation_type); + IFC4_IfcMaterialLayerSetUsage_type = new entity("IfcMaterialLayerSetUsage", false, 566, IFC4_IfcMaterialUsageDefinition_type); + IFC4_IfcMaterialProfileSetUsage_type = new entity("IfcMaterialProfileSetUsage", false, 571, IFC4_IfcMaterialUsageDefinition_type); + IFC4_IfcMaterialProfileSetUsageTapering_type = new entity("IfcMaterialProfileSetUsageTapering", false, 572, IFC4_IfcMaterialProfileSetUsage_type); + IFC4_IfcMaterialProperties_type = new entity("IfcMaterialProperties", false, 574, IFC4_IfcExtendedProperties_type); + IFC4_IfcMaterialRelationship_type = new entity("IfcMaterialRelationship", false, 575, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcMirroredProfileDef_type = new entity("IfcMirroredProfileDef", false, 592, IFC4_IfcDerivedProfileDef_type); + IFC4_IfcObjectDefinition_type = new entity("IfcObjectDefinition", true, 615, IFC4_IfcRoot_type); + IFC4_IfcOpenShell_type = new entity("IfcOpenShell", false, 628, IFC4_IfcConnectedFaceSet_type); + IFC4_IfcOrganizationRelationship_type = new entity("IfcOrganizationRelationship", false, 630, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcOrientedEdge_type = new entity("IfcOrientedEdge", false, 631, IFC4_IfcEdge_type); + IFC4_IfcParameterizedProfileDef_type = new entity("IfcParameterizedProfileDef", true, 637, IFC4_IfcProfileDef_type); + IFC4_IfcPath_type = new entity("IfcPath", false, 639, IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcPhysicalComplexQuantity_type = new entity("IfcPhysicalComplexQuantity", false, 650, IFC4_IfcPhysicalQuantity_type); + IFC4_IfcPixelTexture_type = new entity("IfcPixelTexture", false, 664, IFC4_IfcSurfaceTexture_type); + IFC4_IfcPlacement_type = new entity("IfcPlacement", true, 665, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcPlanarExtent_type = new entity("IfcPlanarExtent", false, 667, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcPoint_type = new entity("IfcPoint", true, 675, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcPointOnCurve_type = new entity("IfcPointOnCurve", false, 676, IFC4_IfcPoint_type); + IFC4_IfcPointOnSurface_type = new entity("IfcPointOnSurface", false, 677, IFC4_IfcPoint_type); + IFC4_IfcPolyLoop_type = new entity("IfcPolyLoop", false, 682, IFC4_IfcLoop_type); + IFC4_IfcPolygonalBoundedHalfSpace_type = new entity("IfcPolygonalBoundedHalfSpace", false, 679, IFC4_IfcHalfSpaceSolid_type); + IFC4_IfcPreDefinedItem_type = new entity("IfcPreDefinedItem", true, 692, IFC4_IfcPresentationItem_type); + IFC4_IfcPreDefinedProperties_type = new entity("IfcPreDefinedProperties", true, 693, IFC4_IfcPropertyAbstraction_type); + IFC4_IfcPreDefinedTextFont_type = new entity("IfcPreDefinedTextFont", true, 695, IFC4_IfcPreDefinedItem_type); + IFC4_IfcProductDefinitionShape_type = new entity("IfcProductDefinitionShape", false, 711, IFC4_IfcProductRepresentation_type); + IFC4_IfcProfileProperties_type = new entity("IfcProfileProperties", false, 716, IFC4_IfcExtendedProperties_type); + IFC4_IfcProperty_type = new entity("IfcProperty", true, 726, IFC4_IfcPropertyAbstraction_type); + IFC4_IfcPropertyDefinition_type = new entity("IfcPropertyDefinition", true, 729, IFC4_IfcRoot_type); + IFC4_IfcPropertyDependencyRelationship_type = new entity("IfcPropertyDependencyRelationship", false, 730, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcPropertySetDefinition_type = new entity("IfcPropertySetDefinition", true, 736, IFC4_IfcPropertyDefinition_type); + IFC4_IfcPropertyTemplateDefinition_type = new entity("IfcPropertyTemplateDefinition", true, 744, IFC4_IfcPropertyDefinition_type); + IFC4_IfcQuantitySet_type = new entity("IfcQuantitySet", true, 758, IFC4_IfcPropertySetDefinition_type); + IFC4_IfcRectangleProfileDef_type = new entity("IfcRectangleProfileDef", false, 777, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcRegularTimeSeries_type = new entity("IfcRegularTimeSeries", false, 784, IFC4_IfcTimeSeries_type); + IFC4_IfcReinforcementBarProperties_type = new entity("IfcReinforcementBarProperties", false, 785, IFC4_IfcPreDefinedProperties_type); + IFC4_IfcRelationship_type = new entity("IfcRelationship", true, 813, IFC4_IfcRoot_type); + IFC4_IfcResourceApprovalRelationship_type = new entity("IfcResourceApprovalRelationship", false, 851, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcResourceConstraintRelationship_type = new entity("IfcResourceConstraintRelationship", false, 852, IFC4_IfcResourceLevelRelationship_type); + IFC4_IfcResourceTime_type = new entity("IfcResourceTime", false, 856, IFC4_IfcSchedulingTime_type); + IFC4_IfcRoundedRectangleProfileDef_type = new entity("IfcRoundedRectangleProfileDef", false, 870, IFC4_IfcRectangleProfileDef_type); + IFC4_IfcSectionProperties_type = new entity("IfcSectionProperties", false, 879, IFC4_IfcPreDefinedProperties_type); + IFC4_IfcSectionReinforcementProperties_type = new entity("IfcSectionReinforcementProperties", false, 880, IFC4_IfcPreDefinedProperties_type); + IFC4_IfcSectionedSpine_type = new entity("IfcSectionedSpine", false, 877, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcShellBasedSurfaceModel_type = new entity("IfcShellBasedSurfaceModel", false, 895, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcSimpleProperty_type = new entity("IfcSimpleProperty", true, 896, IFC4_IfcProperty_type); + IFC4_IfcSlippageConnectionCondition_type = new entity("IfcSlippageConnectionCondition", false, 910, IFC4_IfcStructuralConnectionCondition_type); + IFC4_IfcSolidModel_type = new entity("IfcSolidModel", true, 915, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcStructuralLoadLinearForce_type = new entity("IfcStructuralLoadLinearForce", false, 970, IFC4_IfcStructuralLoadStatic_type); + IFC4_IfcStructuralLoadPlanarForce_type = new entity("IfcStructuralLoadPlanarForce", false, 972, IFC4_IfcStructuralLoadStatic_type); + IFC4_IfcStructuralLoadSingleDisplacement_type = new entity("IfcStructuralLoadSingleDisplacement", false, 973, IFC4_IfcStructuralLoadStatic_type); + IFC4_IfcStructuralLoadSingleDisplacementDistortion_type = new entity("IfcStructuralLoadSingleDisplacementDistortion", false, 974, IFC4_IfcStructuralLoadSingleDisplacement_type); + IFC4_IfcStructuralLoadSingleForce_type = new entity("IfcStructuralLoadSingleForce", false, 975, IFC4_IfcStructuralLoadStatic_type); + IFC4_IfcStructuralLoadSingleForceWarping_type = new entity("IfcStructuralLoadSingleForceWarping", false, 976, IFC4_IfcStructuralLoadSingleForce_type); + IFC4_IfcSubedge_type = new entity("IfcSubedge", false, 1000, IFC4_IfcEdge_type); + IFC4_IfcSurface_type = new entity("IfcSurface", true, 1001, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcSurfaceStyleRendering_type = new entity("IfcSurfaceStyleRendering", false, 1015, IFC4_IfcSurfaceStyleShading_type); + IFC4_IfcSweptAreaSolid_type = new entity("IfcSweptAreaSolid", true, 1019, IFC4_IfcSolidModel_type); + IFC4_IfcSweptDiskSolid_type = new entity("IfcSweptDiskSolid", false, 1020, IFC4_IfcSolidModel_type); + IFC4_IfcSweptDiskSolidPolygonal_type = new entity("IfcSweptDiskSolidPolygonal", false, 1021, IFC4_IfcSweptDiskSolid_type); + IFC4_IfcSweptSurface_type = new entity("IfcSweptSurface", true, 1022, IFC4_IfcSurface_type); + IFC4_IfcTShapeProfileDef_type = new entity("IfcTShapeProfileDef", false, 1102, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcTessellatedItem_type = new entity("IfcTessellatedItem", true, 1052, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcTextLiteral_type = new entity("IfcTextLiteral", false, 1058, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcTextLiteralWithExtent_type = new entity("IfcTextLiteralWithExtent", false, 1059, IFC4_IfcTextLiteral_type); + IFC4_IfcTextStyleFontModel_type = new entity("IfcTextStyleFontModel", false, 1062, IFC4_IfcPreDefinedTextFont_type); + IFC4_IfcTrapeziumProfileDef_type = new entity("IfcTrapeziumProfileDef", false, 1097, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcTypeObject_type = new entity("IfcTypeObject", false, 1106, IFC4_IfcObjectDefinition_type); + IFC4_IfcTypeProcess_type = new entity("IfcTypeProcess", true, 1107, IFC4_IfcTypeObject_type); + IFC4_IfcTypeProduct_type = new entity("IfcTypeProduct", false, 1108, IFC4_IfcTypeObject_type); + IFC4_IfcTypeResource_type = new entity("IfcTypeResource", true, 1109, IFC4_IfcTypeObject_type); + IFC4_IfcUShapeProfileDef_type = new entity("IfcUShapeProfileDef", false, 1120, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcVector_type = new entity("IfcVector", false, 1126, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcVertexLoop_type = new entity("IfcVertexLoop", false, 1129, IFC4_IfcLoop_type); + IFC4_IfcWindowStyle_type = new entity("IfcWindowStyle", false, 1157, IFC4_IfcTypeProduct_type); + IFC4_IfcZShapeProfileDef_type = new entity("IfcZShapeProfileDef", false, 1172, IFC4_IfcParameterizedProfileDef_type); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcClassification_type); @@ -5247,13 +5271,13 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back(IFC4_IfcThermodynamicTemperatureMeasure_type); items.push_back(IFC4_IfcTimeMeasure_type); items.push_back(IFC4_IfcVolumeMeasure_type); - IFC4_IfcMeasureValue_type = new select_type("IfcMeasureValue", 575, items); + IFC4_IfcMeasureValue_type = new select_type("IfcMeasureValue", 578, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcPoint_type); items.push_back(IFC4_IfcVertexPoint_type); - IFC4_IfcPointOrVertexPoint_type = new select_type("IfcPointOrVertexPoint", 675, items); + IFC4_IfcPointOrVertexPoint_type = new select_type("IfcPointOrVertexPoint", 678, items); } { std::vector items; items.reserve(5); @@ -5262,15 +5286,15 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back(IFC4_IfcNullStyle_type); items.push_back(IFC4_IfcSurfaceStyle_type); items.push_back(IFC4_IfcTextStyle_type); - IFC4_IfcPresentationStyleSelect_type = new select_type("IfcPresentationStyleSelect", 698, items); + IFC4_IfcPresentationStyleSelect_type = new select_type("IfcPresentationStyleSelect", 703, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcProductDefinitionShape_type); items.push_back(IFC4_IfcRepresentationMap_type); - IFC4_IfcProductRepresentationSelect_type = new select_type("IfcProductRepresentationSelect", 708, items); + IFC4_IfcProductRepresentationSelect_type = new select_type("IfcProductRepresentationSelect", 713, items); } - IFC4_IfcPropertySetDefinitionSet_type = new type_declaration("IfcPropertySetDefinitionSet", 733, new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type))); + IFC4_IfcPropertySetDefinitionSet_type = new type_declaration("IfcPropertySetDefinitionSet", 738, new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type))); { std::vector items; items.reserve(16); items.push_back(IFC4_IfcActorRole_type); @@ -5289,184 +5313,189 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back(IFC4_IfcProfileDef_type); items.push_back(IFC4_IfcPropertyAbstraction_type); items.push_back(IFC4_IfcTimeSeries_type); - IFC4_IfcResourceObjectSelect_type = new select_type("IfcResourceObjectSelect", 849, items); + IFC4_IfcResourceObjectSelect_type = new select_type("IfcResourceObjectSelect", 854, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcExternallyDefinedTextFont_type); items.push_back(IFC4_IfcPreDefinedTextFont_type); - IFC4_IfcTextFontSelect_type = new select_type("IfcTextFontSelect", 1050, items); + IFC4_IfcTextFontSelect_type = new select_type("IfcTextFontSelect", 1057, items); } { std::vector items; items.reserve(3); items.push_back(IFC4_IfcDerivedMeasureValue_type); items.push_back(IFC4_IfcMeasureValue_type); items.push_back(IFC4_IfcSimpleValue_type); - IFC4_IfcValue_type = new select_type("IfcValue", 1113, items); + IFC4_IfcValue_type = new select_type("IfcValue", 1121, items); } - IFC4_IfcAdvancedFace_type = new entity("IfcAdvancedFace", 16, IFC4_IfcFaceSurface_type); - IFC4_IfcAnnotationFillArea_type = new entity("IfcAnnotationFillArea", 34, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcAsymmetricIShapeProfileDef_type = new entity("IfcAsymmetricIShapeProfileDef", 49, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcAxis1Placement_type = new entity("IfcAxis1Placement", 53, IFC4_IfcPlacement_type); - IFC4_IfcAxis2Placement2D_type = new entity("IfcAxis2Placement2D", 55, IFC4_IfcPlacement_type); - IFC4_IfcAxis2Placement3D_type = new entity("IfcAxis2Placement3D", 56, IFC4_IfcPlacement_type); - IFC4_IfcBooleanResult_type = new entity("IfcBooleanResult", 73, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcBoundedSurface_type = new entity("IfcBoundedSurface", 81, IFC4_IfcSurface_type); - IFC4_IfcBoundingBox_type = new entity("IfcBoundingBox", 82, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcBoxedHalfSpace_type = new entity("IfcBoxedHalfSpace", 84, IFC4_IfcHalfSpaceSolid_type); - IFC4_IfcCShapeProfileDef_type = new entity("IfcCShapeProfileDef", 231, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcCartesianPoint_type = new entity("IfcCartesianPoint", 119, IFC4_IfcPoint_type); - IFC4_IfcCartesianPointList_type = new entity("IfcCartesianPointList", 120, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcCartesianPointList2D_type = new entity("IfcCartesianPointList2D", 121, IFC4_IfcCartesianPointList_type); - IFC4_IfcCartesianPointList3D_type = new entity("IfcCartesianPointList3D", 122, IFC4_IfcCartesianPointList_type); - IFC4_IfcCartesianTransformationOperator_type = new entity("IfcCartesianTransformationOperator", 123, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcCartesianTransformationOperator2D_type = new entity("IfcCartesianTransformationOperator2D", 124, IFC4_IfcCartesianTransformationOperator_type); - IFC4_IfcCartesianTransformationOperator2DnonUniform_type = new entity("IfcCartesianTransformationOperator2DnonUniform", 125, IFC4_IfcCartesianTransformationOperator2D_type); - IFC4_IfcCartesianTransformationOperator3D_type = new entity("IfcCartesianTransformationOperator3D", 126, IFC4_IfcCartesianTransformationOperator_type); - IFC4_IfcCartesianTransformationOperator3DnonUniform_type = new entity("IfcCartesianTransformationOperator3DnonUniform", 127, IFC4_IfcCartesianTransformationOperator3D_type); - IFC4_IfcCircleProfileDef_type = new entity("IfcCircleProfileDef", 138, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcClosedShell_type = new entity("IfcClosedShell", 145, IFC4_IfcConnectedFaceSet_type); - IFC4_IfcColourRgb_type = new entity("IfcColourRgb", 151, IFC4_IfcColourSpecification_type); - IFC4_IfcComplexProperty_type = new entity("IfcComplexProperty", 162, IFC4_IfcProperty_type); - IFC4_IfcCompositeCurveSegment_type = new entity("IfcCompositeCurveSegment", 167, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcConstructionResourceType_type = new entity("IfcConstructionResourceType", 197, IFC4_IfcTypeResource_type); - IFC4_IfcContext_type = new entity("IfcContext", 198, IFC4_IfcObjectDefinition_type); - IFC4_IfcCrewResourceType_type = new entity("IfcCrewResourceType", 226, IFC4_IfcConstructionResourceType_type); - IFC4_IfcCsgPrimitive3D_type = new entity("IfcCsgPrimitive3D", 228, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcCsgSolid_type = new entity("IfcCsgSolid", 230, IFC4_IfcSolidModel_type); - IFC4_IfcCurve_type = new entity("IfcCurve", 237, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcCurveBoundedPlane_type = new entity("IfcCurveBoundedPlane", 238, IFC4_IfcBoundedSurface_type); - IFC4_IfcCurveBoundedSurface_type = new entity("IfcCurveBoundedSurface", 239, IFC4_IfcBoundedSurface_type); - IFC4_IfcDirection_type = new entity("IfcDirection", 267, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcDoorStyle_type = new entity("IfcDoorStyle", 298, IFC4_IfcTypeProduct_type); - IFC4_IfcEdgeLoop_type = new entity("IfcEdgeLoop", 320, IFC4_IfcLoop_type); - IFC4_IfcElementQuantity_type = new entity("IfcElementQuantity", 353, IFC4_IfcQuantitySet_type); - IFC4_IfcElementType_type = new entity("IfcElementType", 354, IFC4_IfcTypeProduct_type); - IFC4_IfcElementarySurface_type = new entity("IfcElementarySurface", 346, IFC4_IfcSurface_type); - IFC4_IfcEllipseProfileDef_type = new entity("IfcEllipseProfileDef", 356, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcEventType_type = new entity("IfcEventType", 372, IFC4_IfcTypeProcess_type); - IFC4_IfcExtrudedAreaSolid_type = new entity("IfcExtrudedAreaSolid", 384, IFC4_IfcSweptAreaSolid_type); - IFC4_IfcExtrudedAreaSolidTapered_type = new entity("IfcExtrudedAreaSolidTapered", 385, IFC4_IfcExtrudedAreaSolid_type); - IFC4_IfcFaceBasedSurfaceModel_type = new entity("IfcFaceBasedSurfaceModel", 387, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcFillAreaStyleHatching_type = new entity("IfcFillAreaStyleHatching", 404, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcFillAreaStyleTiles_type = new entity("IfcFillAreaStyleTiles", 405, IFC4_IfcGeometricRepresentationItem_type); - IFC4_IfcFixedReferenceSweptAreaSolid_type = new entity("IfcFixedReferenceSweptAreaSolid", 413, IFC4_IfcSweptAreaSolid_type); - IFC4_IfcFurnishingElementType_type = new entity("IfcFurnishingElementType", 444, IFC4_IfcElementType_type); - IFC4_IfcFurnitureType_type = new entity("IfcFurnitureType", 446, IFC4_IfcFurnishingElementType_type); - IFC4_IfcGeographicElementType_type = new entity("IfcGeographicElementType", 449, IFC4_IfcElementType_type); - IFC4_IfcGeometricCurveSet_type = new entity("IfcGeometricCurveSet", 451, IFC4_IfcGeometricSet_type); - IFC4_IfcIShapeProfileDef_type = new entity("IfcIShapeProfileDef", 495, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcLShapeProfileDef_type = new entity("IfcLShapeProfileDef", 542, IFC4_IfcParameterizedProfileDef_type); - IFC4_IfcLaborResourceType_type = new entity("IfcLaborResourceType", 504, IFC4_IfcConstructionResourceType_type); - IFC4_IfcLine_type = new entity("IfcLine", 531, IFC4_IfcCurve_type); - IFC4_IfcManifoldSolidBrep_type = new entity("IfcManifoldSolidBrep", 548, IFC4_IfcSolidModel_type); - IFC4_IfcObject_type = new entity("IfcObject", 611, IFC4_IfcObjectDefinition_type); - IFC4_IfcOffsetCurve2D_type = new entity("IfcOffsetCurve2D", 620, IFC4_IfcCurve_type); - IFC4_IfcOffsetCurve3D_type = new entity("IfcOffsetCurve3D", 621, IFC4_IfcCurve_type); - IFC4_IfcPcurve_type = new entity("IfcPcurve", 637, IFC4_IfcCurve_type); - IFC4_IfcPlanarBox_type = new entity("IfcPlanarBox", 663, IFC4_IfcPlanarExtent_type); - IFC4_IfcPlane_type = new entity("IfcPlane", 666, IFC4_IfcElementarySurface_type); - IFC4_IfcPreDefinedColour_type = new entity("IfcPreDefinedColour", 686, IFC4_IfcPreDefinedItem_type); - IFC4_IfcPreDefinedCurveFont_type = new entity("IfcPreDefinedCurveFont", 687, IFC4_IfcPreDefinedItem_type); - IFC4_IfcPreDefinedPropertySet_type = new entity("IfcPreDefinedPropertySet", 690, IFC4_IfcPropertySetDefinition_type); - IFC4_IfcProcedureType_type = new entity("IfcProcedureType", 701, IFC4_IfcTypeProcess_type); - IFC4_IfcProcess_type = new entity("IfcProcess", 703, IFC4_IfcObject_type); - IFC4_IfcProduct_type = new entity("IfcProduct", 705, IFC4_IfcObject_type); - IFC4_IfcProject_type = new entity("IfcProject", 713, IFC4_IfcContext_type); - IFC4_IfcProjectLibrary_type = new entity("IfcProjectLibrary", 718, IFC4_IfcContext_type); - IFC4_IfcPropertyBoundedValue_type = new entity("IfcPropertyBoundedValue", 723, IFC4_IfcSimpleProperty_type); - IFC4_IfcPropertyEnumeratedValue_type = new entity("IfcPropertyEnumeratedValue", 726, IFC4_IfcSimpleProperty_type); - IFC4_IfcPropertyListValue_type = new entity("IfcPropertyListValue", 728, IFC4_IfcSimpleProperty_type); - IFC4_IfcPropertyReferenceValue_type = new entity("IfcPropertyReferenceValue", 729, IFC4_IfcSimpleProperty_type); - IFC4_IfcPropertySet_type = new entity("IfcPropertySet", 730, IFC4_IfcPropertySetDefinition_type); - IFC4_IfcPropertySetTemplate_type = new entity("IfcPropertySetTemplate", 734, IFC4_IfcPropertyTemplateDefinition_type); - IFC4_IfcPropertySingleValue_type = new entity("IfcPropertySingleValue", 736, IFC4_IfcSimpleProperty_type); - IFC4_IfcPropertyTableValue_type = new entity("IfcPropertyTableValue", 737, IFC4_IfcSimpleProperty_type); - IFC4_IfcPropertyTemplate_type = new entity("IfcPropertyTemplate", 738, IFC4_IfcPropertyTemplateDefinition_type); - IFC4_IfcProxy_type = new entity("IfcProxy", 746, IFC4_IfcProduct_type); - IFC4_IfcRectangleHollowProfileDef_type = new entity("IfcRectangleHollowProfileDef", 771, IFC4_IfcRectangleProfileDef_type); - IFC4_IfcRectangularPyramid_type = new entity("IfcRectangularPyramid", 773, IFC4_IfcCsgPrimitive3D_type); - IFC4_IfcRectangularTrimmedSurface_type = new entity("IfcRectangularTrimmedSurface", 774, IFC4_IfcBoundedSurface_type); - IFC4_IfcReinforcementDefinitionProperties_type = new entity("IfcReinforcementDefinitionProperties", 781, IFC4_IfcPreDefinedPropertySet_type); - IFC4_IfcRelAssigns_type = new entity("IfcRelAssigns", 793, IFC4_IfcRelationship_type); - IFC4_IfcRelAssignsToActor_type = new entity("IfcRelAssignsToActor", 794, IFC4_IfcRelAssigns_type); - IFC4_IfcRelAssignsToControl_type = new entity("IfcRelAssignsToControl", 795, IFC4_IfcRelAssigns_type); - IFC4_IfcRelAssignsToGroup_type = new entity("IfcRelAssignsToGroup", 796, IFC4_IfcRelAssigns_type); - IFC4_IfcRelAssignsToGroupByFactor_type = new entity("IfcRelAssignsToGroupByFactor", 797, IFC4_IfcRelAssignsToGroup_type); - IFC4_IfcRelAssignsToProcess_type = new entity("IfcRelAssignsToProcess", 798, IFC4_IfcRelAssigns_type); - IFC4_IfcRelAssignsToProduct_type = new entity("IfcRelAssignsToProduct", 799, IFC4_IfcRelAssigns_type); - IFC4_IfcRelAssignsToResource_type = new entity("IfcRelAssignsToResource", 800, IFC4_IfcRelAssigns_type); - IFC4_IfcRelAssociates_type = new entity("IfcRelAssociates", 801, IFC4_IfcRelationship_type); - IFC4_IfcRelAssociatesApproval_type = new entity("IfcRelAssociatesApproval", 802, IFC4_IfcRelAssociates_type); - IFC4_IfcRelAssociatesClassification_type = new entity("IfcRelAssociatesClassification", 803, IFC4_IfcRelAssociates_type); - IFC4_IfcRelAssociatesConstraint_type = new entity("IfcRelAssociatesConstraint", 804, IFC4_IfcRelAssociates_type); - IFC4_IfcRelAssociatesDocument_type = new entity("IfcRelAssociatesDocument", 805, IFC4_IfcRelAssociates_type); - IFC4_IfcRelAssociatesLibrary_type = new entity("IfcRelAssociatesLibrary", 806, IFC4_IfcRelAssociates_type); - IFC4_IfcRelAssociatesMaterial_type = new entity("IfcRelAssociatesMaterial", 807, IFC4_IfcRelAssociates_type); - IFC4_IfcRelConnects_type = new entity("IfcRelConnects", 809, IFC4_IfcRelationship_type); - IFC4_IfcRelConnectsElements_type = new entity("IfcRelConnectsElements", 810, IFC4_IfcRelConnects_type); - IFC4_IfcRelConnectsPathElements_type = new entity("IfcRelConnectsPathElements", 811, IFC4_IfcRelConnectsElements_type); - IFC4_IfcRelConnectsPortToElement_type = new entity("IfcRelConnectsPortToElement", 813, IFC4_IfcRelConnects_type); - IFC4_IfcRelConnectsPorts_type = new entity("IfcRelConnectsPorts", 812, IFC4_IfcRelConnects_type); - IFC4_IfcRelConnectsStructuralActivity_type = new entity("IfcRelConnectsStructuralActivity", 814, IFC4_IfcRelConnects_type); - IFC4_IfcRelConnectsStructuralMember_type = new entity("IfcRelConnectsStructuralMember", 815, IFC4_IfcRelConnects_type); - IFC4_IfcRelConnectsWithEccentricity_type = new entity("IfcRelConnectsWithEccentricity", 816, IFC4_IfcRelConnectsStructuralMember_type); - IFC4_IfcRelConnectsWithRealizingElements_type = new entity("IfcRelConnectsWithRealizingElements", 817, IFC4_IfcRelConnectsElements_type); - IFC4_IfcRelContainedInSpatialStructure_type = new entity("IfcRelContainedInSpatialStructure", 818, IFC4_IfcRelConnects_type); - IFC4_IfcRelCoversBldgElements_type = new entity("IfcRelCoversBldgElements", 819, IFC4_IfcRelConnects_type); - IFC4_IfcRelCoversSpaces_type = new entity("IfcRelCoversSpaces", 820, IFC4_IfcRelConnects_type); - IFC4_IfcRelDeclares_type = new entity("IfcRelDeclares", 821, IFC4_IfcRelationship_type); - IFC4_IfcRelDecomposes_type = new entity("IfcRelDecomposes", 822, IFC4_IfcRelationship_type); - IFC4_IfcRelDefines_type = new entity("IfcRelDefines", 823, IFC4_IfcRelationship_type); - IFC4_IfcRelDefinesByObject_type = new entity("IfcRelDefinesByObject", 824, IFC4_IfcRelDefines_type); - IFC4_IfcRelDefinesByProperties_type = new entity("IfcRelDefinesByProperties", 825, IFC4_IfcRelDefines_type); - IFC4_IfcRelDefinesByTemplate_type = new entity("IfcRelDefinesByTemplate", 826, IFC4_IfcRelDefines_type); - IFC4_IfcRelDefinesByType_type = new entity("IfcRelDefinesByType", 827, IFC4_IfcRelDefines_type); - IFC4_IfcRelFillsElement_type = new entity("IfcRelFillsElement", 828, IFC4_IfcRelConnects_type); - IFC4_IfcRelFlowControlElements_type = new entity("IfcRelFlowControlElements", 829, IFC4_IfcRelConnects_type); - IFC4_IfcRelInterferesElements_type = new entity("IfcRelInterferesElements", 830, IFC4_IfcRelConnects_type); - IFC4_IfcRelNests_type = new entity("IfcRelNests", 831, IFC4_IfcRelDecomposes_type); - IFC4_IfcRelProjectsElement_type = new entity("IfcRelProjectsElement", 832, IFC4_IfcRelDecomposes_type); - IFC4_IfcRelReferencedInSpatialStructure_type = new entity("IfcRelReferencedInSpatialStructure", 833, IFC4_IfcRelConnects_type); - IFC4_IfcRelSequence_type = new entity("IfcRelSequence", 834, IFC4_IfcRelConnects_type); - IFC4_IfcRelServicesBuildings_type = new entity("IfcRelServicesBuildings", 835, IFC4_IfcRelConnects_type); - IFC4_IfcRelSpaceBoundary_type = new entity("IfcRelSpaceBoundary", 836, IFC4_IfcRelConnects_type); - IFC4_IfcRelSpaceBoundary1stLevel_type = new entity("IfcRelSpaceBoundary1stLevel", 837, IFC4_IfcRelSpaceBoundary_type); - IFC4_IfcRelSpaceBoundary2ndLevel_type = new entity("IfcRelSpaceBoundary2ndLevel", 838, IFC4_IfcRelSpaceBoundary1stLevel_type); - IFC4_IfcRelVoidsElement_type = new entity("IfcRelVoidsElement", 839, IFC4_IfcRelDecomposes_type); - IFC4_IfcReparametrisedCompositeCurveSegment_type = new entity("IfcReparametrisedCompositeCurveSegment", 840, IFC4_IfcCompositeCurveSegment_type); - IFC4_IfcResource_type = new entity("IfcResource", 845, IFC4_IfcObject_type); - IFC4_IfcRevolvedAreaSolid_type = new entity("IfcRevolvedAreaSolid", 852, IFC4_IfcSweptAreaSolid_type); - IFC4_IfcRevolvedAreaSolidTapered_type = new entity("IfcRevolvedAreaSolidTapered", 853, IFC4_IfcRevolvedAreaSolid_type); - IFC4_IfcRightCircularCone_type = new entity("IfcRightCircularCone", 854, IFC4_IfcCsgPrimitive3D_type); - IFC4_IfcRightCircularCylinder_type = new entity("IfcRightCircularCylinder", 855, IFC4_IfcCsgPrimitive3D_type); - IFC4_IfcSimplePropertyTemplate_type = new entity("IfcSimplePropertyTemplate", 891, IFC4_IfcPropertyTemplate_type); - IFC4_IfcSpatialElement_type = new entity("IfcSpatialElement", 922, IFC4_IfcProduct_type); - IFC4_IfcSpatialElementType_type = new entity("IfcSpatialElementType", 923, IFC4_IfcTypeProduct_type); - IFC4_IfcSpatialStructureElement_type = new entity("IfcSpatialStructureElement", 924, IFC4_IfcSpatialElement_type); - IFC4_IfcSpatialStructureElementType_type = new entity("IfcSpatialStructureElementType", 925, IFC4_IfcSpatialElementType_type); - IFC4_IfcSpatialZone_type = new entity("IfcSpatialZone", 926, IFC4_IfcSpatialElement_type); - IFC4_IfcSpatialZoneType_type = new entity("IfcSpatialZoneType", 927, IFC4_IfcSpatialElementType_type); - IFC4_IfcSphere_type = new entity("IfcSphere", 933, IFC4_IfcCsgPrimitive3D_type); - IFC4_IfcStructuralActivity_type = new entity("IfcStructuralActivity", 946, IFC4_IfcProduct_type); - IFC4_IfcStructuralItem_type = new entity("IfcStructuralItem", 958, IFC4_IfcProduct_type); - IFC4_IfcStructuralMember_type = new entity("IfcStructuralMember", 973, IFC4_IfcStructuralItem_type); - IFC4_IfcStructuralReaction_type = new entity("IfcStructuralReaction", 978, IFC4_IfcStructuralActivity_type); - IFC4_IfcStructuralSurfaceMember_type = new entity("IfcStructuralSurfaceMember", 983, IFC4_IfcStructuralMember_type); - IFC4_IfcStructuralSurfaceMemberVarying_type = new entity("IfcStructuralSurfaceMemberVarying", 985, IFC4_IfcStructuralSurfaceMember_type); - IFC4_IfcStructuralSurfaceReaction_type = new entity("IfcStructuralSurfaceReaction", 986, IFC4_IfcStructuralReaction_type); - IFC4_IfcSubContractResourceType_type = new entity("IfcSubContractResourceType", 992, IFC4_IfcConstructionResourceType_type); - IFC4_IfcSurfaceCurveSweptAreaSolid_type = new entity("IfcSurfaceCurveSweptAreaSolid", 996, IFC4_IfcSweptAreaSolid_type); - IFC4_IfcSurfaceOfLinearExtrusion_type = new entity("IfcSurfaceOfLinearExtrusion", 999, IFC4_IfcSweptSurface_type); - IFC4_IfcSurfaceOfRevolution_type = new entity("IfcSurfaceOfRevolution", 1000, IFC4_IfcSweptSurface_type); - IFC4_IfcSystemFurnitureElementType_type = new entity("IfcSystemFurnitureElementType", 1021, IFC4_IfcFurnishingElementType_type); - IFC4_IfcTask_type = new entity("IfcTask", 1029, IFC4_IfcProcess_type); - IFC4_IfcTaskType_type = new entity("IfcTaskType", 1033, IFC4_IfcTypeProcess_type); - IFC4_IfcTessellatedFaceSet_type = new entity("IfcTessellatedFaceSet", 1044, IFC4_IfcTessellatedItem_type); - IFC4_IfcTransportElementType_type = new entity("IfcTransportElementType", 1087, IFC4_IfcElementType_type); - IFC4_IfcTriangulatedFaceSet_type = new entity("IfcTriangulatedFaceSet", 1090, IFC4_IfcTessellatedFaceSet_type); - IFC4_IfcWindowLiningProperties_type = new entity("IfcWindowLiningProperties", 1144, IFC4_IfcPreDefinedPropertySet_type); - IFC4_IfcWindowPanelProperties_type = new entity("IfcWindowPanelProperties", 1147, IFC4_IfcPreDefinedPropertySet_type); + IFC4_IfcAdvancedFace_type = new entity("IfcAdvancedFace", false, 16, IFC4_IfcFaceSurface_type); + IFC4_IfcAnnotationFillArea_type = new entity("IfcAnnotationFillArea", false, 34, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcAsymmetricIShapeProfileDef_type = new entity("IfcAsymmetricIShapeProfileDef", false, 49, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcAxis1Placement_type = new entity("IfcAxis1Placement", false, 53, IFC4_IfcPlacement_type); + IFC4_IfcAxis2Placement2D_type = new entity("IfcAxis2Placement2D", false, 55, IFC4_IfcPlacement_type); + IFC4_IfcAxis2Placement3D_type = new entity("IfcAxis2Placement3D", false, 56, IFC4_IfcPlacement_type); + IFC4_IfcBooleanResult_type = new entity("IfcBooleanResult", false, 73, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcBoundedSurface_type = new entity("IfcBoundedSurface", true, 81, IFC4_IfcSurface_type); + IFC4_IfcBoundingBox_type = new entity("IfcBoundingBox", false, 82, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcBoxedHalfSpace_type = new entity("IfcBoxedHalfSpace", false, 84, IFC4_IfcHalfSpaceSolid_type); + IFC4_IfcCShapeProfileDef_type = new entity("IfcCShapeProfileDef", false, 231, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcCartesianPoint_type = new entity("IfcCartesianPoint", false, 119, IFC4_IfcPoint_type); + IFC4_IfcCartesianPointList_type = new entity("IfcCartesianPointList", true, 120, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcCartesianPointList2D_type = new entity("IfcCartesianPointList2D", false, 121, IFC4_IfcCartesianPointList_type); + IFC4_IfcCartesianPointList3D_type = new entity("IfcCartesianPointList3D", false, 122, IFC4_IfcCartesianPointList_type); + IFC4_IfcCartesianTransformationOperator_type = new entity("IfcCartesianTransformationOperator", true, 123, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcCartesianTransformationOperator2D_type = new entity("IfcCartesianTransformationOperator2D", false, 124, IFC4_IfcCartesianTransformationOperator_type); + IFC4_IfcCartesianTransformationOperator2DnonUniform_type = new entity("IfcCartesianTransformationOperator2DnonUniform", false, 125, IFC4_IfcCartesianTransformationOperator2D_type); + IFC4_IfcCartesianTransformationOperator3D_type = new entity("IfcCartesianTransformationOperator3D", false, 126, IFC4_IfcCartesianTransformationOperator_type); + IFC4_IfcCartesianTransformationOperator3DnonUniform_type = new entity("IfcCartesianTransformationOperator3DnonUniform", false, 127, IFC4_IfcCartesianTransformationOperator3D_type); + IFC4_IfcCircleProfileDef_type = new entity("IfcCircleProfileDef", false, 138, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcClosedShell_type = new entity("IfcClosedShell", false, 145, IFC4_IfcConnectedFaceSet_type); + IFC4_IfcColourRgb_type = new entity("IfcColourRgb", false, 151, IFC4_IfcColourSpecification_type); + IFC4_IfcComplexProperty_type = new entity("IfcComplexProperty", false, 162, IFC4_IfcProperty_type); + IFC4_IfcCompositeCurveSegment_type = new entity("IfcCompositeCurveSegment", false, 167, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcConstructionResourceType_type = new entity("IfcConstructionResourceType", true, 197, IFC4_IfcTypeResource_type); + IFC4_IfcContext_type = new entity("IfcContext", true, 198, IFC4_IfcObjectDefinition_type); + IFC4_IfcCrewResourceType_type = new entity("IfcCrewResourceType", false, 226, IFC4_IfcConstructionResourceType_type); + IFC4_IfcCsgPrimitive3D_type = new entity("IfcCsgPrimitive3D", true, 228, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcCsgSolid_type = new entity("IfcCsgSolid", false, 230, IFC4_IfcSolidModel_type); + IFC4_IfcCurve_type = new entity("IfcCurve", true, 237, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcCurveBoundedPlane_type = new entity("IfcCurveBoundedPlane", false, 238, IFC4_IfcBoundedSurface_type); + IFC4_IfcCurveBoundedSurface_type = new entity("IfcCurveBoundedSurface", false, 239, IFC4_IfcBoundedSurface_type); + IFC4_IfcDirection_type = new entity("IfcDirection", false, 267, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcDoorStyle_type = new entity("IfcDoorStyle", false, 298, IFC4_IfcTypeProduct_type); + IFC4_IfcEdgeLoop_type = new entity("IfcEdgeLoop", false, 320, IFC4_IfcLoop_type); + IFC4_IfcElementQuantity_type = new entity("IfcElementQuantity", false, 353, IFC4_IfcQuantitySet_type); + IFC4_IfcElementType_type = new entity("IfcElementType", true, 354, IFC4_IfcTypeProduct_type); + IFC4_IfcElementarySurface_type = new entity("IfcElementarySurface", true, 346, IFC4_IfcSurface_type); + IFC4_IfcEllipseProfileDef_type = new entity("IfcEllipseProfileDef", false, 356, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcEventType_type = new entity("IfcEventType", false, 372, IFC4_IfcTypeProcess_type); + IFC4_IfcExtrudedAreaSolid_type = new entity("IfcExtrudedAreaSolid", false, 384, IFC4_IfcSweptAreaSolid_type); + IFC4_IfcExtrudedAreaSolidTapered_type = new entity("IfcExtrudedAreaSolidTapered", false, 385, IFC4_IfcExtrudedAreaSolid_type); + IFC4_IfcFaceBasedSurfaceModel_type = new entity("IfcFaceBasedSurfaceModel", false, 387, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcFillAreaStyleHatching_type = new entity("IfcFillAreaStyleHatching", false, 404, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcFillAreaStyleTiles_type = new entity("IfcFillAreaStyleTiles", false, 405, IFC4_IfcGeometricRepresentationItem_type); + IFC4_IfcFixedReferenceSweptAreaSolid_type = new entity("IfcFixedReferenceSweptAreaSolid", false, 413, IFC4_IfcSweptAreaSolid_type); + IFC4_IfcFurnishingElementType_type = new entity("IfcFurnishingElementType", false, 444, IFC4_IfcElementType_type); + IFC4_IfcFurnitureType_type = new entity("IfcFurnitureType", false, 446, IFC4_IfcFurnishingElementType_type); + IFC4_IfcGeographicElementType_type = new entity("IfcGeographicElementType", false, 449, IFC4_IfcElementType_type); + IFC4_IfcGeometricCurveSet_type = new entity("IfcGeometricCurveSet", false, 451, IFC4_IfcGeometricSet_type); + IFC4_IfcIShapeProfileDef_type = new entity("IfcIShapeProfileDef", false, 498, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcIndexedPolygonalFace_type = new entity("IfcIndexedPolygonalFace", false, 481, IFC4_IfcTessellatedItem_type); + IFC4_IfcIndexedPolygonalFaceWithVoids_type = new entity("IfcIndexedPolygonalFaceWithVoids", false, 482, IFC4_IfcIndexedPolygonalFace_type); + IFC4_IfcLShapeProfileDef_type = new entity("IfcLShapeProfileDef", false, 545, IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcLaborResourceType_type = new entity("IfcLaborResourceType", false, 507, IFC4_IfcConstructionResourceType_type); + IFC4_IfcLine_type = new entity("IfcLine", false, 534, IFC4_IfcCurve_type); + IFC4_IfcManifoldSolidBrep_type = new entity("IfcManifoldSolidBrep", true, 551, IFC4_IfcSolidModel_type); + IFC4_IfcObject_type = new entity("IfcObject", true, 614, IFC4_IfcObjectDefinition_type); + IFC4_IfcOffsetCurve2D_type = new entity("IfcOffsetCurve2D", false, 623, IFC4_IfcCurve_type); + IFC4_IfcOffsetCurve3D_type = new entity("IfcOffsetCurve3D", false, 624, IFC4_IfcCurve_type); + IFC4_IfcPcurve_type = new entity("IfcPcurve", false, 640, IFC4_IfcCurve_type); + IFC4_IfcPlanarBox_type = new entity("IfcPlanarBox", false, 666, IFC4_IfcPlanarExtent_type); + IFC4_IfcPlane_type = new entity("IfcPlane", false, 669, IFC4_IfcElementarySurface_type); + IFC4_IfcPreDefinedColour_type = new entity("IfcPreDefinedColour", true, 690, IFC4_IfcPreDefinedItem_type); + IFC4_IfcPreDefinedCurveFont_type = new entity("IfcPreDefinedCurveFont", true, 691, IFC4_IfcPreDefinedItem_type); + IFC4_IfcPreDefinedPropertySet_type = new entity("IfcPreDefinedPropertySet", true, 694, IFC4_IfcPropertySetDefinition_type); + IFC4_IfcProcedureType_type = new entity("IfcProcedureType", false, 706, IFC4_IfcTypeProcess_type); + IFC4_IfcProcess_type = new entity("IfcProcess", true, 708, IFC4_IfcObject_type); + IFC4_IfcProduct_type = new entity("IfcProduct", true, 710, IFC4_IfcObject_type); + IFC4_IfcProject_type = new entity("IfcProject", false, 718, IFC4_IfcContext_type); + IFC4_IfcProjectLibrary_type = new entity("IfcProjectLibrary", false, 723, IFC4_IfcContext_type); + IFC4_IfcPropertyBoundedValue_type = new entity("IfcPropertyBoundedValue", false, 728, IFC4_IfcSimpleProperty_type); + IFC4_IfcPropertyEnumeratedValue_type = new entity("IfcPropertyEnumeratedValue", false, 731, IFC4_IfcSimpleProperty_type); + IFC4_IfcPropertyListValue_type = new entity("IfcPropertyListValue", false, 733, IFC4_IfcSimpleProperty_type); + IFC4_IfcPropertyReferenceValue_type = new entity("IfcPropertyReferenceValue", false, 734, IFC4_IfcSimpleProperty_type); + IFC4_IfcPropertySet_type = new entity("IfcPropertySet", false, 735, IFC4_IfcPropertySetDefinition_type); + IFC4_IfcPropertySetTemplate_type = new entity("IfcPropertySetTemplate", false, 739, IFC4_IfcPropertyTemplateDefinition_type); + IFC4_IfcPropertySingleValue_type = new entity("IfcPropertySingleValue", false, 741, IFC4_IfcSimpleProperty_type); + IFC4_IfcPropertyTableValue_type = new entity("IfcPropertyTableValue", false, 742, IFC4_IfcSimpleProperty_type); + IFC4_IfcPropertyTemplate_type = new entity("IfcPropertyTemplate", true, 743, IFC4_IfcPropertyTemplateDefinition_type); + IFC4_IfcProxy_type = new entity("IfcProxy", false, 751, IFC4_IfcProduct_type); + IFC4_IfcRectangleHollowProfileDef_type = new entity("IfcRectangleHollowProfileDef", false, 776, IFC4_IfcRectangleProfileDef_type); + IFC4_IfcRectangularPyramid_type = new entity("IfcRectangularPyramid", false, 778, IFC4_IfcCsgPrimitive3D_type); + IFC4_IfcRectangularTrimmedSurface_type = new entity("IfcRectangularTrimmedSurface", false, 779, IFC4_IfcBoundedSurface_type); + IFC4_IfcReinforcementDefinitionProperties_type = new entity("IfcReinforcementDefinitionProperties", false, 786, IFC4_IfcPreDefinedPropertySet_type); + IFC4_IfcRelAssigns_type = new entity("IfcRelAssigns", true, 798, IFC4_IfcRelationship_type); + IFC4_IfcRelAssignsToActor_type = new entity("IfcRelAssignsToActor", false, 799, IFC4_IfcRelAssigns_type); + IFC4_IfcRelAssignsToControl_type = new entity("IfcRelAssignsToControl", false, 800, IFC4_IfcRelAssigns_type); + IFC4_IfcRelAssignsToGroup_type = new entity("IfcRelAssignsToGroup", false, 801, IFC4_IfcRelAssigns_type); + IFC4_IfcRelAssignsToGroupByFactor_type = new entity("IfcRelAssignsToGroupByFactor", false, 802, IFC4_IfcRelAssignsToGroup_type); + IFC4_IfcRelAssignsToProcess_type = new entity("IfcRelAssignsToProcess", false, 803, IFC4_IfcRelAssigns_type); + IFC4_IfcRelAssignsToProduct_type = new entity("IfcRelAssignsToProduct", false, 804, IFC4_IfcRelAssigns_type); + IFC4_IfcRelAssignsToResource_type = new entity("IfcRelAssignsToResource", false, 805, IFC4_IfcRelAssigns_type); + IFC4_IfcRelAssociates_type = new entity("IfcRelAssociates", true, 806, IFC4_IfcRelationship_type); + IFC4_IfcRelAssociatesApproval_type = new entity("IfcRelAssociatesApproval", false, 807, IFC4_IfcRelAssociates_type); + IFC4_IfcRelAssociatesClassification_type = new entity("IfcRelAssociatesClassification", false, 808, IFC4_IfcRelAssociates_type); + IFC4_IfcRelAssociatesConstraint_type = new entity("IfcRelAssociatesConstraint", false, 809, IFC4_IfcRelAssociates_type); + IFC4_IfcRelAssociatesDocument_type = new entity("IfcRelAssociatesDocument", false, 810, IFC4_IfcRelAssociates_type); + IFC4_IfcRelAssociatesLibrary_type = new entity("IfcRelAssociatesLibrary", false, 811, IFC4_IfcRelAssociates_type); + IFC4_IfcRelAssociatesMaterial_type = new entity("IfcRelAssociatesMaterial", false, 812, IFC4_IfcRelAssociates_type); + IFC4_IfcRelConnects_type = new entity("IfcRelConnects", true, 814, IFC4_IfcRelationship_type); + IFC4_IfcRelConnectsElements_type = new entity("IfcRelConnectsElements", false, 815, IFC4_IfcRelConnects_type); + IFC4_IfcRelConnectsPathElements_type = new entity("IfcRelConnectsPathElements", false, 816, IFC4_IfcRelConnectsElements_type); + IFC4_IfcRelConnectsPortToElement_type = new entity("IfcRelConnectsPortToElement", false, 818, IFC4_IfcRelConnects_type); + IFC4_IfcRelConnectsPorts_type = new entity("IfcRelConnectsPorts", false, 817, IFC4_IfcRelConnects_type); + IFC4_IfcRelConnectsStructuralActivity_type = new entity("IfcRelConnectsStructuralActivity", false, 819, IFC4_IfcRelConnects_type); + IFC4_IfcRelConnectsStructuralMember_type = new entity("IfcRelConnectsStructuralMember", false, 820, IFC4_IfcRelConnects_type); + IFC4_IfcRelConnectsWithEccentricity_type = new entity("IfcRelConnectsWithEccentricity", false, 821, IFC4_IfcRelConnectsStructuralMember_type); + IFC4_IfcRelConnectsWithRealizingElements_type = new entity("IfcRelConnectsWithRealizingElements", false, 822, IFC4_IfcRelConnectsElements_type); + IFC4_IfcRelContainedInSpatialStructure_type = new entity("IfcRelContainedInSpatialStructure", false, 823, IFC4_IfcRelConnects_type); + IFC4_IfcRelCoversBldgElements_type = new entity("IfcRelCoversBldgElements", false, 824, IFC4_IfcRelConnects_type); + IFC4_IfcRelCoversSpaces_type = new entity("IfcRelCoversSpaces", false, 825, IFC4_IfcRelConnects_type); + IFC4_IfcRelDeclares_type = new entity("IfcRelDeclares", false, 826, IFC4_IfcRelationship_type); + IFC4_IfcRelDecomposes_type = new entity("IfcRelDecomposes", true, 827, IFC4_IfcRelationship_type); + IFC4_IfcRelDefines_type = new entity("IfcRelDefines", true, 828, IFC4_IfcRelationship_type); + IFC4_IfcRelDefinesByObject_type = new entity("IfcRelDefinesByObject", false, 829, IFC4_IfcRelDefines_type); + IFC4_IfcRelDefinesByProperties_type = new entity("IfcRelDefinesByProperties", false, 830, IFC4_IfcRelDefines_type); + IFC4_IfcRelDefinesByTemplate_type = new entity("IfcRelDefinesByTemplate", false, 831, IFC4_IfcRelDefines_type); + IFC4_IfcRelDefinesByType_type = new entity("IfcRelDefinesByType", false, 832, IFC4_IfcRelDefines_type); + IFC4_IfcRelFillsElement_type = new entity("IfcRelFillsElement", false, 833, IFC4_IfcRelConnects_type); + IFC4_IfcRelFlowControlElements_type = new entity("IfcRelFlowControlElements", false, 834, IFC4_IfcRelConnects_type); + IFC4_IfcRelInterferesElements_type = new entity("IfcRelInterferesElements", false, 835, IFC4_IfcRelConnects_type); + IFC4_IfcRelNests_type = new entity("IfcRelNests", false, 836, IFC4_IfcRelDecomposes_type); + IFC4_IfcRelProjectsElement_type = new entity("IfcRelProjectsElement", false, 837, IFC4_IfcRelDecomposes_type); + IFC4_IfcRelReferencedInSpatialStructure_type = new entity("IfcRelReferencedInSpatialStructure", false, 838, IFC4_IfcRelConnects_type); + IFC4_IfcRelSequence_type = new entity("IfcRelSequence", false, 839, IFC4_IfcRelConnects_type); + IFC4_IfcRelServicesBuildings_type = new entity("IfcRelServicesBuildings", false, 840, IFC4_IfcRelConnects_type); + IFC4_IfcRelSpaceBoundary_type = new entity("IfcRelSpaceBoundary", false, 841, IFC4_IfcRelConnects_type); + IFC4_IfcRelSpaceBoundary1stLevel_type = new entity("IfcRelSpaceBoundary1stLevel", false, 842, IFC4_IfcRelSpaceBoundary_type); + IFC4_IfcRelSpaceBoundary2ndLevel_type = new entity("IfcRelSpaceBoundary2ndLevel", false, 843, IFC4_IfcRelSpaceBoundary1stLevel_type); + IFC4_IfcRelVoidsElement_type = new entity("IfcRelVoidsElement", false, 844, IFC4_IfcRelDecomposes_type); + IFC4_IfcReparametrisedCompositeCurveSegment_type = new entity("IfcReparametrisedCompositeCurveSegment", false, 845, IFC4_IfcCompositeCurveSegment_type); + IFC4_IfcResource_type = new entity("IfcResource", true, 850, IFC4_IfcObject_type); + IFC4_IfcRevolvedAreaSolid_type = new entity("IfcRevolvedAreaSolid", false, 857, IFC4_IfcSweptAreaSolid_type); + IFC4_IfcRevolvedAreaSolidTapered_type = new entity("IfcRevolvedAreaSolidTapered", false, 858, IFC4_IfcRevolvedAreaSolid_type); + IFC4_IfcRightCircularCone_type = new entity("IfcRightCircularCone", false, 859, IFC4_IfcCsgPrimitive3D_type); + IFC4_IfcRightCircularCylinder_type = new entity("IfcRightCircularCylinder", false, 860, IFC4_IfcCsgPrimitive3D_type); + IFC4_IfcSimplePropertyTemplate_type = new entity("IfcSimplePropertyTemplate", false, 897, IFC4_IfcPropertyTemplate_type); + IFC4_IfcSpatialElement_type = new entity("IfcSpatialElement", true, 928, IFC4_IfcProduct_type); + IFC4_IfcSpatialElementType_type = new entity("IfcSpatialElementType", true, 929, IFC4_IfcTypeProduct_type); + IFC4_IfcSpatialStructureElement_type = new entity("IfcSpatialStructureElement", true, 930, IFC4_IfcSpatialElement_type); + IFC4_IfcSpatialStructureElementType_type = new entity("IfcSpatialStructureElementType", true, 931, IFC4_IfcSpatialElementType_type); + IFC4_IfcSpatialZone_type = new entity("IfcSpatialZone", false, 932, IFC4_IfcSpatialElement_type); + IFC4_IfcSpatialZoneType_type = new entity("IfcSpatialZoneType", false, 933, IFC4_IfcSpatialElementType_type); + IFC4_IfcSphere_type = new entity("IfcSphere", false, 939, IFC4_IfcCsgPrimitive3D_type); + IFC4_IfcSphericalSurface_type = new entity("IfcSphericalSurface", false, 940, IFC4_IfcElementarySurface_type); + IFC4_IfcStructuralActivity_type = new entity("IfcStructuralActivity", true, 952, IFC4_IfcProduct_type); + IFC4_IfcStructuralItem_type = new entity("IfcStructuralItem", true, 964, IFC4_IfcProduct_type); + IFC4_IfcStructuralMember_type = new entity("IfcStructuralMember", true, 979, IFC4_IfcStructuralItem_type); + IFC4_IfcStructuralReaction_type = new entity("IfcStructuralReaction", true, 984, IFC4_IfcStructuralActivity_type); + IFC4_IfcStructuralSurfaceMember_type = new entity("IfcStructuralSurfaceMember", false, 989, IFC4_IfcStructuralMember_type); + IFC4_IfcStructuralSurfaceMemberVarying_type = new entity("IfcStructuralSurfaceMemberVarying", false, 991, IFC4_IfcStructuralSurfaceMember_type); + IFC4_IfcStructuralSurfaceReaction_type = new entity("IfcStructuralSurfaceReaction", false, 992, IFC4_IfcStructuralReaction_type); + IFC4_IfcSubContractResourceType_type = new entity("IfcSubContractResourceType", false, 998, IFC4_IfcConstructionResourceType_type); + IFC4_IfcSurfaceCurve_type = new entity("IfcSurfaceCurve", false, 1002, IFC4_IfcCurve_type); + IFC4_IfcSurfaceCurveSweptAreaSolid_type = new entity("IfcSurfaceCurveSweptAreaSolid", false, 1003, IFC4_IfcSweptAreaSolid_type); + IFC4_IfcSurfaceOfLinearExtrusion_type = new entity("IfcSurfaceOfLinearExtrusion", false, 1006, IFC4_IfcSweptSurface_type); + IFC4_IfcSurfaceOfRevolution_type = new entity("IfcSurfaceOfRevolution", false, 1007, IFC4_IfcSweptSurface_type); + IFC4_IfcSystemFurnitureElementType_type = new entity("IfcSystemFurnitureElementType", false, 1028, IFC4_IfcFurnishingElementType_type); + IFC4_IfcTask_type = new entity("IfcTask", false, 1036, IFC4_IfcProcess_type); + IFC4_IfcTaskType_type = new entity("IfcTaskType", false, 1040, IFC4_IfcTypeProcess_type); + IFC4_IfcTessellatedFaceSet_type = new entity("IfcTessellatedFaceSet", true, 1051, IFC4_IfcTessellatedItem_type); + IFC4_IfcToroidalSurface_type = new entity("IfcToroidalSurface", false, 1087, IFC4_IfcElementarySurface_type); + IFC4_IfcTransportElementType_type = new entity("IfcTransportElementType", false, 1095, IFC4_IfcElementType_type); + IFC4_IfcTriangulatedFaceSet_type = new entity("IfcTriangulatedFaceSet", false, 1098, IFC4_IfcTessellatedFaceSet_type); + IFC4_IfcWindowLiningProperties_type = new entity("IfcWindowLiningProperties", false, 1152, IFC4_IfcPreDefinedPropertySet_type); + IFC4_IfcWindowPanelProperties_type = new entity("IfcWindowPanelProperties", false, 1155, IFC4_IfcPreDefinedPropertySet_type); { std::vector items; items.reserve(3); items.push_back(IFC4_IfcMeasureWithUnit_type); @@ -5481,11 +5510,12 @@ IfcParse::schema_definition* IFC4_populate_schema() { IFC4_IfcAxis2Placement_type = new select_type("IfcAxis2Placement", 54, items); } { - std::vector items; items.reserve(4); + std::vector items; items.reserve(5); items.push_back(IFC4_IfcBooleanResult_type); items.push_back(IFC4_IfcCsgPrimitive3D_type); items.push_back(IFC4_IfcHalfSpaceSolid_type); items.push_back(IFC4_IfcSolidModel_type); + items.push_back(IFC4_IfcTessellatedFaceSet_type); IFC4_IfcBooleanOperand_type = new select_type("IfcBooleanOperand", 71, items); } { @@ -5541,230 +5571,233 @@ IfcParse::schema_definition* IFC4_populate_schema() { items.push_back(IFC4_IfcTable_type); items.push_back(IFC4_IfcTimeSeries_type); items.push_back(IFC4_IfcValue_type); - IFC4_IfcMetricValueSelect_type = new select_type("IfcMetricValueSelect", 588, items); + IFC4_IfcMetricValueSelect_type = new select_type("IfcMetricValueSelect", 591, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcProcess_type); items.push_back(IFC4_IfcTypeProcess_type); - IFC4_IfcProcessSelect_type = new select_type("IfcProcessSelect", 704, items); + IFC4_IfcProcessSelect_type = new select_type("IfcProcessSelect", 709, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcProduct_type); items.push_back(IFC4_IfcTypeProduct_type); - IFC4_IfcProductSelect_type = new select_type("IfcProductSelect", 709, items); + IFC4_IfcProductSelect_type = new select_type("IfcProductSelect", 714, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcPropertySetDefinition_type); items.push_back(IFC4_IfcPropertySetDefinitionSet_type); - IFC4_IfcPropertySetDefinitionSelect_type = new select_type("IfcPropertySetDefinitionSelect", 732, items); + IFC4_IfcPropertySetDefinitionSelect_type = new select_type("IfcPropertySetDefinitionSelect", 737, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcResource_type); items.push_back(IFC4_IfcTypeResource_type); - IFC4_IfcResourceSelect_type = new select_type("IfcResourceSelect", 850, items); + IFC4_IfcResourceSelect_type = new select_type("IfcResourceSelect", 855, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcClosedShell_type); items.push_back(IFC4_IfcOpenShell_type); - IFC4_IfcShell_type = new select_type("IfcShell", 888, items); + IFC4_IfcShell_type = new select_type("IfcShell", 894, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcClosedShell_type); items.push_back(IFC4_IfcSolidModel_type); - IFC4_IfcSolidOrShell_type = new select_type("IfcSolidOrShell", 910, items); + IFC4_IfcSolidOrShell_type = new select_type("IfcSolidOrShell", 916, items); } { std::vector items; items.reserve(3); items.push_back(IFC4_IfcFaceBasedSurfaceModel_type); items.push_back(IFC4_IfcFaceSurface_type); items.push_back(IFC4_IfcSurface_type); - IFC4_IfcSurfaceOrFaceSurface_type = new select_type("IfcSurfaceOrFaceSurface", 1001, items); + IFC4_IfcSurfaceOrFaceSurface_type = new select_type("IfcSurfaceOrFaceSurface", 1008, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcCartesianPoint_type); items.push_back(IFC4_IfcParameterValue_type); - IFC4_IfcTrimmingSelect_type = new select_type("IfcTrimmingSelect", 1093, items); + IFC4_IfcTrimmingSelect_type = new select_type("IfcTrimmingSelect", 1101, items); } { std::vector items; items.reserve(2); items.push_back(IFC4_IfcDirection_type); items.push_back(IFC4_IfcVector_type); - IFC4_IfcVectorOrDirection_type = new select_type("IfcVectorOrDirection", 1119, items); + IFC4_IfcVectorOrDirection_type = new select_type("IfcVectorOrDirection", 1127, items); } - IFC4_IfcActor_type = new entity("IfcActor", 6, IFC4_IfcObject_type); - IFC4_IfcAdvancedBrep_type = new entity("IfcAdvancedBrep", 14, IFC4_IfcManifoldSolidBrep_type); - IFC4_IfcAdvancedBrepWithVoids_type = new entity("IfcAdvancedBrepWithVoids", 15, IFC4_IfcAdvancedBrep_type); - IFC4_IfcAnnotation_type = new entity("IfcAnnotation", 33, IFC4_IfcProduct_type); - IFC4_IfcBSplineSurface_type = new entity("IfcBSplineSurface", 88, IFC4_IfcBoundedSurface_type); - IFC4_IfcBSplineSurfaceWithKnots_type = new entity("IfcBSplineSurfaceWithKnots", 90, IFC4_IfcBSplineSurface_type); - IFC4_IfcBlock_type = new entity("IfcBlock", 65, IFC4_IfcCsgPrimitive3D_type); - IFC4_IfcBooleanClippingResult_type = new entity("IfcBooleanClippingResult", 70, IFC4_IfcBooleanResult_type); - IFC4_IfcBoundedCurve_type = new entity("IfcBoundedCurve", 80, IFC4_IfcCurve_type); - IFC4_IfcBuilding_type = new entity("IfcBuilding", 91, IFC4_IfcSpatialStructureElement_type); - IFC4_IfcBuildingElementType_type = new entity("IfcBuildingElementType", 99, IFC4_IfcElementType_type); - IFC4_IfcBuildingStorey_type = new entity("IfcBuildingStorey", 100, IFC4_IfcSpatialStructureElement_type); - IFC4_IfcChimneyType_type = new entity("IfcChimneyType", 134, IFC4_IfcBuildingElementType_type); - IFC4_IfcCircleHollowProfileDef_type = new entity("IfcCircleHollowProfileDef", 137, IFC4_IfcCircleProfileDef_type); - IFC4_IfcCivilElementType_type = new entity("IfcCivilElementType", 140, IFC4_IfcElementType_type); - IFC4_IfcColumnType_type = new entity("IfcColumnType", 156, IFC4_IfcBuildingElementType_type); - IFC4_IfcComplexPropertyTemplate_type = new entity("IfcComplexPropertyTemplate", 163, IFC4_IfcPropertyTemplate_type); - IFC4_IfcCompositeCurve_type = new entity("IfcCompositeCurve", 165, IFC4_IfcBoundedCurve_type); - IFC4_IfcCompositeCurveOnSurface_type = new entity("IfcCompositeCurveOnSurface", 166, IFC4_IfcCompositeCurve_type); - IFC4_IfcConic_type = new entity("IfcConic", 176, IFC4_IfcCurve_type); - IFC4_IfcConstructionEquipmentResourceType_type = new entity("IfcConstructionEquipmentResourceType", 188, IFC4_IfcConstructionResourceType_type); - IFC4_IfcConstructionMaterialResourceType_type = new entity("IfcConstructionMaterialResourceType", 191, IFC4_IfcConstructionResourceType_type); - IFC4_IfcConstructionProductResourceType_type = new entity("IfcConstructionProductResourceType", 194, IFC4_IfcConstructionResourceType_type); - IFC4_IfcConstructionResource_type = new entity("IfcConstructionResource", 196, IFC4_IfcResource_type); - IFC4_IfcControl_type = new entity("IfcControl", 201, IFC4_IfcObject_type); - IFC4_IfcCostItem_type = new entity("IfcCostItem", 216, IFC4_IfcControl_type); - IFC4_IfcCostSchedule_type = new entity("IfcCostSchedule", 218, IFC4_IfcControl_type); - IFC4_IfcCoveringType_type = new entity("IfcCoveringType", 223, IFC4_IfcBuildingElementType_type); - IFC4_IfcCrewResource_type = new entity("IfcCrewResource", 225, IFC4_IfcConstructionResource_type); - IFC4_IfcCurtainWallType_type = new entity("IfcCurtainWallType", 234, IFC4_IfcBuildingElementType_type); - IFC4_IfcCylindricalSurface_type = new entity("IfcCylindricalSurface", 249, IFC4_IfcElementarySurface_type); - IFC4_IfcDistributionElementType_type = new entity("IfcDistributionElementType", 279, IFC4_IfcElementType_type); - IFC4_IfcDistributionFlowElementType_type = new entity("IfcDistributionFlowElementType", 281, IFC4_IfcDistributionElementType_type); - IFC4_IfcDoorLiningProperties_type = new entity("IfcDoorLiningProperties", 293, IFC4_IfcPreDefinedPropertySet_type); - IFC4_IfcDoorPanelProperties_type = new entity("IfcDoorPanelProperties", 296, IFC4_IfcPreDefinedPropertySet_type); - IFC4_IfcDoorType_type = new entity("IfcDoorType", 301, IFC4_IfcBuildingElementType_type); - IFC4_IfcDraughtingPreDefinedColour_type = new entity("IfcDraughtingPreDefinedColour", 305, IFC4_IfcPreDefinedColour_type); - IFC4_IfcDraughtingPreDefinedCurveFont_type = new entity("IfcDraughtingPreDefinedCurveFont", 306, IFC4_IfcPreDefinedCurveFont_type); - IFC4_IfcElement_type = new entity("IfcElement", 345, IFC4_IfcProduct_type); - IFC4_IfcElementAssembly_type = new entity("IfcElementAssembly", 347, IFC4_IfcElement_type); - IFC4_IfcElementAssemblyType_type = new entity("IfcElementAssemblyType", 348, IFC4_IfcElementType_type); - IFC4_IfcElementComponent_type = new entity("IfcElementComponent", 350, IFC4_IfcElement_type); - IFC4_IfcElementComponentType_type = new entity("IfcElementComponentType", 351, IFC4_IfcElementType_type); - IFC4_IfcEllipse_type = new entity("IfcEllipse", 355, IFC4_IfcConic_type); - IFC4_IfcEnergyConversionDeviceType_type = new entity("IfcEnergyConversionDeviceType", 358, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcEngineType_type = new entity("IfcEngineType", 361, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcEvaporativeCoolerType_type = new entity("IfcEvaporativeCoolerType", 364, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcEvaporatorType_type = new entity("IfcEvaporatorType", 367, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcEvent_type = new entity("IfcEvent", 369, IFC4_IfcProcess_type); - IFC4_IfcExternalSpatialStructureElement_type = new entity("IfcExternalSpatialStructureElement", 383, IFC4_IfcSpatialElement_type); - IFC4_IfcFacetedBrep_type = new entity("IfcFacetedBrep", 391, IFC4_IfcManifoldSolidBrep_type); - IFC4_IfcFacetedBrepWithVoids_type = new entity("IfcFacetedBrepWithVoids", 392, IFC4_IfcFacetedBrep_type); - IFC4_IfcFastener_type = new entity("IfcFastener", 397, IFC4_IfcElementComponent_type); - IFC4_IfcFastenerType_type = new entity("IfcFastenerType", 398, IFC4_IfcElementComponentType_type); - IFC4_IfcFeatureElement_type = new entity("IfcFeatureElement", 400, IFC4_IfcElement_type); - IFC4_IfcFeatureElementAddition_type = new entity("IfcFeatureElementAddition", 401, IFC4_IfcFeatureElement_type); - IFC4_IfcFeatureElementSubtraction_type = new entity("IfcFeatureElementSubtraction", 402, IFC4_IfcFeatureElement_type); - IFC4_IfcFlowControllerType_type = new entity("IfcFlowControllerType", 415, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcFlowFittingType_type = new entity("IfcFlowFittingType", 418, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcFlowMeterType_type = new entity("IfcFlowMeterType", 423, IFC4_IfcFlowControllerType_type); - IFC4_IfcFlowMovingDeviceType_type = new entity("IfcFlowMovingDeviceType", 426, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcFlowSegmentType_type = new entity("IfcFlowSegmentType", 428, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcFlowStorageDeviceType_type = new entity("IfcFlowStorageDeviceType", 430, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcFlowTerminalType_type = new entity("IfcFlowTerminalType", 432, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcFlowTreatmentDeviceType_type = new entity("IfcFlowTreatmentDeviceType", 434, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcFootingType_type = new entity("IfcFootingType", 439, IFC4_IfcBuildingElementType_type); - IFC4_IfcFurnishingElement_type = new entity("IfcFurnishingElement", 443, IFC4_IfcElement_type); - IFC4_IfcFurniture_type = new entity("IfcFurniture", 445, IFC4_IfcFurnishingElement_type); - IFC4_IfcGeographicElement_type = new entity("IfcGeographicElement", 448, IFC4_IfcElement_type); - IFC4_IfcGrid_type = new entity("IfcGrid", 460, IFC4_IfcProduct_type); - IFC4_IfcGroup_type = new entity("IfcGroup", 465, IFC4_IfcObject_type); - IFC4_IfcHeatExchangerType_type = new entity("IfcHeatExchangerType", 469, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcHumidifierType_type = new entity("IfcHumidifierType", 474, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcIndexedPolyCurve_type = new entity("IfcIndexedPolyCurve", 480, IFC4_IfcBoundedCurve_type); - IFC4_IfcInterceptorType_type = new entity("IfcInterceptorType", 487, IFC4_IfcFlowTreatmentDeviceType_type); - IFC4_IfcInventory_type = new entity("IfcInventory", 490, IFC4_IfcGroup_type); - IFC4_IfcJunctionBoxType_type = new entity("IfcJunctionBoxType", 498, IFC4_IfcFlowFittingType_type); - IFC4_IfcLaborResource_type = new entity("IfcLaborResource", 503, IFC4_IfcConstructionResource_type); - IFC4_IfcLampType_type = new entity("IfcLampType", 508, IFC4_IfcFlowTerminalType_type); - IFC4_IfcLightFixtureType_type = new entity("IfcLightFixtureType", 522, IFC4_IfcFlowTerminalType_type); - IFC4_IfcMechanicalFastener_type = new entity("IfcMechanicalFastener", 577, IFC4_IfcElementComponent_type); - IFC4_IfcMechanicalFastenerType_type = new entity("IfcMechanicalFastenerType", 578, IFC4_IfcElementComponentType_type); - IFC4_IfcMedicalDeviceType_type = new entity("IfcMedicalDeviceType", 581, IFC4_IfcFlowTerminalType_type); - IFC4_IfcMemberType_type = new entity("IfcMemberType", 585, IFC4_IfcBuildingElementType_type); - IFC4_IfcMotorConnectionType_type = new entity("IfcMotorConnectionType", 604, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcOccupant_type = new entity("IfcOccupant", 618, IFC4_IfcActor_type); - IFC4_IfcOpeningElement_type = new entity("IfcOpeningElement", 622, IFC4_IfcFeatureElementSubtraction_type); - IFC4_IfcOpeningStandardCase_type = new entity("IfcOpeningStandardCase", 624, IFC4_IfcOpeningElement_type); - IFC4_IfcOutletType_type = new entity("IfcOutletType", 631, IFC4_IfcFlowTerminalType_type); - IFC4_IfcPerformanceHistory_type = new entity("IfcPerformanceHistory", 638, IFC4_IfcControl_type); - IFC4_IfcPermeableCoveringProperties_type = new entity("IfcPermeableCoveringProperties", 641, IFC4_IfcPreDefinedPropertySet_type); - IFC4_IfcPermit_type = new entity("IfcPermit", 642, IFC4_IfcControl_type); - IFC4_IfcPileType_type = new entity("IfcPileType", 653, IFC4_IfcBuildingElementType_type); - IFC4_IfcPipeFittingType_type = new entity("IfcPipeFittingType", 656, IFC4_IfcFlowFittingType_type); - IFC4_IfcPipeSegmentType_type = new entity("IfcPipeSegmentType", 659, IFC4_IfcFlowSegmentType_type); - IFC4_IfcPlateType_type = new entity("IfcPlateType", 670, IFC4_IfcBuildingElementType_type); - IFC4_IfcPolyline_type = new entity("IfcPolyline", 677, IFC4_IfcBoundedCurve_type); - IFC4_IfcPort_type = new entity("IfcPort", 679, IFC4_IfcProduct_type); - IFC4_IfcProcedure_type = new entity("IfcProcedure", 700, IFC4_IfcProcess_type); - IFC4_IfcProjectOrder_type = new entity("IfcProjectOrder", 719, IFC4_IfcControl_type); - IFC4_IfcProjectionElement_type = new entity("IfcProjectionElement", 716, IFC4_IfcFeatureElementAddition_type); - IFC4_IfcProtectiveDeviceType_type = new entity("IfcProtectiveDeviceType", 744, IFC4_IfcFlowControllerType_type); - IFC4_IfcPumpType_type = new entity("IfcPumpType", 748, IFC4_IfcFlowMovingDeviceType_type); - IFC4_IfcRailingType_type = new entity("IfcRailingType", 759, IFC4_IfcBuildingElementType_type); - IFC4_IfcRampFlightType_type = new entity("IfcRampFlightType", 763, IFC4_IfcBuildingElementType_type); - IFC4_IfcRampType_type = new entity("IfcRampType", 765, IFC4_IfcBuildingElementType_type); - IFC4_IfcRationalBSplineSurfaceWithKnots_type = new entity("IfcRationalBSplineSurfaceWithKnots", 769, IFC4_IfcBSplineSurfaceWithKnots_type); - IFC4_IfcReinforcingElement_type = new entity("IfcReinforcingElement", 787, IFC4_IfcElementComponent_type); - IFC4_IfcReinforcingElementType_type = new entity("IfcReinforcingElementType", 788, IFC4_IfcElementComponentType_type); - IFC4_IfcReinforcingMesh_type = new entity("IfcReinforcingMesh", 789, IFC4_IfcReinforcingElement_type); - IFC4_IfcReinforcingMeshType_type = new entity("IfcReinforcingMeshType", 790, IFC4_IfcReinforcingElementType_type); - IFC4_IfcRelAggregates_type = new entity("IfcRelAggregates", 792, IFC4_IfcRelDecomposes_type); - IFC4_IfcRoofType_type = new entity("IfcRoofType", 858, IFC4_IfcBuildingElementType_type); - IFC4_IfcSanitaryTerminalType_type = new entity("IfcSanitaryTerminalType", 867, IFC4_IfcFlowTerminalType_type); - IFC4_IfcShadingDeviceType_type = new entity("IfcShadingDeviceType", 882, IFC4_IfcBuildingElementType_type); - IFC4_IfcSite_type = new entity("IfcSite", 895, IFC4_IfcSpatialStructureElement_type); - IFC4_IfcSlabType_type = new entity("IfcSlabType", 902, IFC4_IfcBuildingElementType_type); - IFC4_IfcSolarDeviceType_type = new entity("IfcSolarDeviceType", 906, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcSpace_type = new entity("IfcSpace", 915, IFC4_IfcSpatialStructureElement_type); - IFC4_IfcSpaceHeaterType_type = new entity("IfcSpaceHeaterType", 918, IFC4_IfcFlowTerminalType_type); - IFC4_IfcSpaceType_type = new entity("IfcSpaceType", 920, IFC4_IfcSpatialStructureElementType_type); - IFC4_IfcStackTerminalType_type = new entity("IfcStackTerminalType", 935, IFC4_IfcFlowTerminalType_type); - IFC4_IfcStairFlightType_type = new entity("IfcStairFlightType", 939, IFC4_IfcBuildingElementType_type); - IFC4_IfcStairType_type = new entity("IfcStairType", 941, IFC4_IfcBuildingElementType_type); - IFC4_IfcStructuralAction_type = new entity("IfcStructuralAction", 945, IFC4_IfcStructuralActivity_type); - IFC4_IfcStructuralConnection_type = new entity("IfcStructuralConnection", 949, IFC4_IfcStructuralItem_type); - IFC4_IfcStructuralCurveAction_type = new entity("IfcStructuralCurveAction", 951, IFC4_IfcStructuralAction_type); - IFC4_IfcStructuralCurveConnection_type = new entity("IfcStructuralCurveConnection", 953, IFC4_IfcStructuralConnection_type); - IFC4_IfcStructuralCurveMember_type = new entity("IfcStructuralCurveMember", 954, IFC4_IfcStructuralMember_type); - IFC4_IfcStructuralCurveMemberVarying_type = new entity("IfcStructuralCurveMemberVarying", 956, IFC4_IfcStructuralCurveMember_type); - IFC4_IfcStructuralCurveReaction_type = new entity("IfcStructuralCurveReaction", 957, IFC4_IfcStructuralReaction_type); - IFC4_IfcStructuralLinearAction_type = new entity("IfcStructuralLinearAction", 959, IFC4_IfcStructuralCurveAction_type); - IFC4_IfcStructuralLoadGroup_type = new entity("IfcStructuralLoadGroup", 963, IFC4_IfcGroup_type); - IFC4_IfcStructuralPointAction_type = new entity("IfcStructuralPointAction", 975, IFC4_IfcStructuralAction_type); - IFC4_IfcStructuralPointConnection_type = new entity("IfcStructuralPointConnection", 976, IFC4_IfcStructuralConnection_type); - IFC4_IfcStructuralPointReaction_type = new entity("IfcStructuralPointReaction", 977, IFC4_IfcStructuralReaction_type); - IFC4_IfcStructuralResultGroup_type = new entity("IfcStructuralResultGroup", 979, IFC4_IfcGroup_type); - IFC4_IfcStructuralSurfaceAction_type = new entity("IfcStructuralSurfaceAction", 980, IFC4_IfcStructuralAction_type); - IFC4_IfcStructuralSurfaceConnection_type = new entity("IfcStructuralSurfaceConnection", 982, IFC4_IfcStructuralConnection_type); - IFC4_IfcSubContractResource_type = new entity("IfcSubContractResource", 991, IFC4_IfcConstructionResource_type); - IFC4_IfcSurfaceFeature_type = new entity("IfcSurfaceFeature", 997, IFC4_IfcFeatureElement_type); - IFC4_IfcSwitchingDeviceType_type = new entity("IfcSwitchingDeviceType", 1017, IFC4_IfcFlowControllerType_type); - IFC4_IfcSystem_type = new entity("IfcSystem", 1019, IFC4_IfcGroup_type); - IFC4_IfcSystemFurnitureElement_type = new entity("IfcSystemFurnitureElement", 1020, IFC4_IfcFurnishingElement_type); - IFC4_IfcTankType_type = new entity("IfcTankType", 1027, IFC4_IfcFlowStorageDeviceType_type); - IFC4_IfcTendon_type = new entity("IfcTendon", 1038, IFC4_IfcReinforcingElement_type); - IFC4_IfcTendonAnchor_type = new entity("IfcTendonAnchor", 1039, IFC4_IfcReinforcingElement_type); - IFC4_IfcTendonAnchorType_type = new entity("IfcTendonAnchorType", 1040, IFC4_IfcReinforcingElementType_type); - IFC4_IfcTendonType_type = new entity("IfcTendonType", 1042, IFC4_IfcReinforcingElementType_type); - IFC4_IfcTransformerType_type = new entity("IfcTransformerType", 1082, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcTransportElement_type = new entity("IfcTransportElement", 1086, IFC4_IfcElement_type); - IFC4_IfcTrimmedCurve_type = new entity("IfcTrimmedCurve", 1091, IFC4_IfcBoundedCurve_type); - IFC4_IfcTubeBundleType_type = new entity("IfcTubeBundleType", 1096, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcUnitaryEquipmentType_type = new entity("IfcUnitaryEquipmentType", 1107, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcValveType_type = new entity("IfcValveType", 1115, IFC4_IfcFlowControllerType_type); - IFC4_IfcVibrationIsolator_type = new entity("IfcVibrationIsolator", 1123, IFC4_IfcElementComponent_type); - IFC4_IfcVibrationIsolatorType_type = new entity("IfcVibrationIsolatorType", 1124, IFC4_IfcElementComponentType_type); - IFC4_IfcVirtualElement_type = new entity("IfcVirtualElement", 1126, IFC4_IfcElement_type); - IFC4_IfcVoidingFeature_type = new entity("IfcVoidingFeature", 1128, IFC4_IfcFeatureElementSubtraction_type); - IFC4_IfcWallType_type = new entity("IfcWallType", 1135, IFC4_IfcBuildingElementType_type); - IFC4_IfcWasteTerminalType_type = new entity("IfcWasteTerminalType", 1141, IFC4_IfcFlowTerminalType_type); - IFC4_IfcWindowType_type = new entity("IfcWindowType", 1152, IFC4_IfcBuildingElementType_type); - IFC4_IfcWorkCalendar_type = new entity("IfcWorkCalendar", 1155, IFC4_IfcControl_type); - IFC4_IfcWorkControl_type = new entity("IfcWorkControl", 1157, IFC4_IfcControl_type); - IFC4_IfcWorkPlan_type = new entity("IfcWorkPlan", 1158, IFC4_IfcWorkControl_type); - IFC4_IfcWorkSchedule_type = new entity("IfcWorkSchedule", 1160, IFC4_IfcWorkControl_type); - IFC4_IfcZone_type = new entity("IfcZone", 1163, IFC4_IfcSystem_type); + IFC4_IfcActor_type = new entity("IfcActor", false, 6, IFC4_IfcObject_type); + IFC4_IfcAdvancedBrep_type = new entity("IfcAdvancedBrep", false, 14, IFC4_IfcManifoldSolidBrep_type); + IFC4_IfcAdvancedBrepWithVoids_type = new entity("IfcAdvancedBrepWithVoids", false, 15, IFC4_IfcAdvancedBrep_type); + IFC4_IfcAnnotation_type = new entity("IfcAnnotation", false, 33, IFC4_IfcProduct_type); + IFC4_IfcBSplineSurface_type = new entity("IfcBSplineSurface", true, 88, IFC4_IfcBoundedSurface_type); + IFC4_IfcBSplineSurfaceWithKnots_type = new entity("IfcBSplineSurfaceWithKnots", false, 90, IFC4_IfcBSplineSurface_type); + IFC4_IfcBlock_type = new entity("IfcBlock", false, 65, IFC4_IfcCsgPrimitive3D_type); + IFC4_IfcBooleanClippingResult_type = new entity("IfcBooleanClippingResult", false, 70, IFC4_IfcBooleanResult_type); + IFC4_IfcBoundedCurve_type = new entity("IfcBoundedCurve", true, 80, IFC4_IfcCurve_type); + IFC4_IfcBuilding_type = new entity("IfcBuilding", false, 91, IFC4_IfcSpatialStructureElement_type); + IFC4_IfcBuildingElementType_type = new entity("IfcBuildingElementType", true, 99, IFC4_IfcElementType_type); + IFC4_IfcBuildingStorey_type = new entity("IfcBuildingStorey", false, 100, IFC4_IfcSpatialStructureElement_type); + IFC4_IfcChimneyType_type = new entity("IfcChimneyType", false, 134, IFC4_IfcBuildingElementType_type); + IFC4_IfcCircleHollowProfileDef_type = new entity("IfcCircleHollowProfileDef", false, 137, IFC4_IfcCircleProfileDef_type); + IFC4_IfcCivilElementType_type = new entity("IfcCivilElementType", false, 140, IFC4_IfcElementType_type); + IFC4_IfcColumnType_type = new entity("IfcColumnType", false, 156, IFC4_IfcBuildingElementType_type); + IFC4_IfcComplexPropertyTemplate_type = new entity("IfcComplexPropertyTemplate", false, 163, IFC4_IfcPropertyTemplate_type); + IFC4_IfcCompositeCurve_type = new entity("IfcCompositeCurve", false, 165, IFC4_IfcBoundedCurve_type); + IFC4_IfcCompositeCurveOnSurface_type = new entity("IfcCompositeCurveOnSurface", false, 166, IFC4_IfcCompositeCurve_type); + IFC4_IfcConic_type = new entity("IfcConic", true, 176, IFC4_IfcCurve_type); + IFC4_IfcConstructionEquipmentResourceType_type = new entity("IfcConstructionEquipmentResourceType", false, 188, IFC4_IfcConstructionResourceType_type); + IFC4_IfcConstructionMaterialResourceType_type = new entity("IfcConstructionMaterialResourceType", false, 191, IFC4_IfcConstructionResourceType_type); + IFC4_IfcConstructionProductResourceType_type = new entity("IfcConstructionProductResourceType", false, 194, IFC4_IfcConstructionResourceType_type); + IFC4_IfcConstructionResource_type = new entity("IfcConstructionResource", true, 196, IFC4_IfcResource_type); + IFC4_IfcControl_type = new entity("IfcControl", true, 201, IFC4_IfcObject_type); + IFC4_IfcCostItem_type = new entity("IfcCostItem", false, 216, IFC4_IfcControl_type); + IFC4_IfcCostSchedule_type = new entity("IfcCostSchedule", false, 218, IFC4_IfcControl_type); + IFC4_IfcCoveringType_type = new entity("IfcCoveringType", false, 223, IFC4_IfcBuildingElementType_type); + IFC4_IfcCrewResource_type = new entity("IfcCrewResource", false, 225, IFC4_IfcConstructionResource_type); + IFC4_IfcCurtainWallType_type = new entity("IfcCurtainWallType", false, 234, IFC4_IfcBuildingElementType_type); + IFC4_IfcCylindricalSurface_type = new entity("IfcCylindricalSurface", false, 249, IFC4_IfcElementarySurface_type); + IFC4_IfcDistributionElementType_type = new entity("IfcDistributionElementType", false, 279, IFC4_IfcElementType_type); + IFC4_IfcDistributionFlowElementType_type = new entity("IfcDistributionFlowElementType", true, 281, IFC4_IfcDistributionElementType_type); + IFC4_IfcDoorLiningProperties_type = new entity("IfcDoorLiningProperties", false, 293, IFC4_IfcPreDefinedPropertySet_type); + IFC4_IfcDoorPanelProperties_type = new entity("IfcDoorPanelProperties", false, 296, IFC4_IfcPreDefinedPropertySet_type); + IFC4_IfcDoorType_type = new entity("IfcDoorType", false, 301, IFC4_IfcBuildingElementType_type); + IFC4_IfcDraughtingPreDefinedColour_type = new entity("IfcDraughtingPreDefinedColour", false, 305, IFC4_IfcPreDefinedColour_type); + IFC4_IfcDraughtingPreDefinedCurveFont_type = new entity("IfcDraughtingPreDefinedCurveFont", false, 306, IFC4_IfcPreDefinedCurveFont_type); + IFC4_IfcElement_type = new entity("IfcElement", true, 345, IFC4_IfcProduct_type); + IFC4_IfcElementAssembly_type = new entity("IfcElementAssembly", false, 347, IFC4_IfcElement_type); + IFC4_IfcElementAssemblyType_type = new entity("IfcElementAssemblyType", false, 348, IFC4_IfcElementType_type); + IFC4_IfcElementComponent_type = new entity("IfcElementComponent", true, 350, IFC4_IfcElement_type); + IFC4_IfcElementComponentType_type = new entity("IfcElementComponentType", true, 351, IFC4_IfcElementType_type); + IFC4_IfcEllipse_type = new entity("IfcEllipse", false, 355, IFC4_IfcConic_type); + IFC4_IfcEnergyConversionDeviceType_type = new entity("IfcEnergyConversionDeviceType", true, 358, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcEngineType_type = new entity("IfcEngineType", false, 361, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcEvaporativeCoolerType_type = new entity("IfcEvaporativeCoolerType", false, 364, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcEvaporatorType_type = new entity("IfcEvaporatorType", false, 367, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcEvent_type = new entity("IfcEvent", false, 369, IFC4_IfcProcess_type); + IFC4_IfcExternalSpatialStructureElement_type = new entity("IfcExternalSpatialStructureElement", true, 383, IFC4_IfcSpatialElement_type); + IFC4_IfcFacetedBrep_type = new entity("IfcFacetedBrep", false, 391, IFC4_IfcManifoldSolidBrep_type); + IFC4_IfcFacetedBrepWithVoids_type = new entity("IfcFacetedBrepWithVoids", false, 392, IFC4_IfcFacetedBrep_type); + IFC4_IfcFastener_type = new entity("IfcFastener", false, 397, IFC4_IfcElementComponent_type); + IFC4_IfcFastenerType_type = new entity("IfcFastenerType", false, 398, IFC4_IfcElementComponentType_type); + IFC4_IfcFeatureElement_type = new entity("IfcFeatureElement", true, 400, IFC4_IfcElement_type); + IFC4_IfcFeatureElementAddition_type = new entity("IfcFeatureElementAddition", true, 401, IFC4_IfcFeatureElement_type); + IFC4_IfcFeatureElementSubtraction_type = new entity("IfcFeatureElementSubtraction", true, 402, IFC4_IfcFeatureElement_type); + IFC4_IfcFlowControllerType_type = new entity("IfcFlowControllerType", true, 415, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcFlowFittingType_type = new entity("IfcFlowFittingType", true, 418, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcFlowMeterType_type = new entity("IfcFlowMeterType", false, 423, IFC4_IfcFlowControllerType_type); + IFC4_IfcFlowMovingDeviceType_type = new entity("IfcFlowMovingDeviceType", true, 426, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcFlowSegmentType_type = new entity("IfcFlowSegmentType", true, 428, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcFlowStorageDeviceType_type = new entity("IfcFlowStorageDeviceType", true, 430, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcFlowTerminalType_type = new entity("IfcFlowTerminalType", true, 432, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcFlowTreatmentDeviceType_type = new entity("IfcFlowTreatmentDeviceType", true, 434, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcFootingType_type = new entity("IfcFootingType", false, 439, IFC4_IfcBuildingElementType_type); + IFC4_IfcFurnishingElement_type = new entity("IfcFurnishingElement", false, 443, IFC4_IfcElement_type); + IFC4_IfcFurniture_type = new entity("IfcFurniture", false, 445, IFC4_IfcFurnishingElement_type); + IFC4_IfcGeographicElement_type = new entity("IfcGeographicElement", false, 448, IFC4_IfcElement_type); + IFC4_IfcGrid_type = new entity("IfcGrid", false, 460, IFC4_IfcProduct_type); + IFC4_IfcGroup_type = new entity("IfcGroup", false, 465, IFC4_IfcObject_type); + IFC4_IfcHeatExchangerType_type = new entity("IfcHeatExchangerType", false, 469, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcHumidifierType_type = new entity("IfcHumidifierType", false, 474, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcIndexedPolyCurve_type = new entity("IfcIndexedPolyCurve", false, 480, IFC4_IfcBoundedCurve_type); + IFC4_IfcInterceptorType_type = new entity("IfcInterceptorType", false, 489, IFC4_IfcFlowTreatmentDeviceType_type); + IFC4_IfcIntersectionCurve_type = new entity("IfcIntersectionCurve", false, 492, IFC4_IfcSurfaceCurve_type); + IFC4_IfcInventory_type = new entity("IfcInventory", false, 493, IFC4_IfcGroup_type); + IFC4_IfcJunctionBoxType_type = new entity("IfcJunctionBoxType", false, 501, IFC4_IfcFlowFittingType_type); + IFC4_IfcLaborResource_type = new entity("IfcLaborResource", false, 506, IFC4_IfcConstructionResource_type); + IFC4_IfcLampType_type = new entity("IfcLampType", false, 511, IFC4_IfcFlowTerminalType_type); + IFC4_IfcLightFixtureType_type = new entity("IfcLightFixtureType", false, 525, IFC4_IfcFlowTerminalType_type); + IFC4_IfcMechanicalFastener_type = new entity("IfcMechanicalFastener", false, 580, IFC4_IfcElementComponent_type); + IFC4_IfcMechanicalFastenerType_type = new entity("IfcMechanicalFastenerType", false, 581, IFC4_IfcElementComponentType_type); + IFC4_IfcMedicalDeviceType_type = new entity("IfcMedicalDeviceType", false, 584, IFC4_IfcFlowTerminalType_type); + IFC4_IfcMemberType_type = new entity("IfcMemberType", false, 588, IFC4_IfcBuildingElementType_type); + IFC4_IfcMotorConnectionType_type = new entity("IfcMotorConnectionType", false, 607, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcOccupant_type = new entity("IfcOccupant", false, 621, IFC4_IfcActor_type); + IFC4_IfcOpeningElement_type = new entity("IfcOpeningElement", false, 625, IFC4_IfcFeatureElementSubtraction_type); + IFC4_IfcOpeningStandardCase_type = new entity("IfcOpeningStandardCase", false, 627, IFC4_IfcOpeningElement_type); + IFC4_IfcOutletType_type = new entity("IfcOutletType", false, 634, IFC4_IfcFlowTerminalType_type); + IFC4_IfcPerformanceHistory_type = new entity("IfcPerformanceHistory", false, 641, IFC4_IfcControl_type); + IFC4_IfcPermeableCoveringProperties_type = new entity("IfcPermeableCoveringProperties", false, 644, IFC4_IfcPreDefinedPropertySet_type); + IFC4_IfcPermit_type = new entity("IfcPermit", false, 645, IFC4_IfcControl_type); + IFC4_IfcPileType_type = new entity("IfcPileType", false, 656, IFC4_IfcBuildingElementType_type); + IFC4_IfcPipeFittingType_type = new entity("IfcPipeFittingType", false, 659, IFC4_IfcFlowFittingType_type); + IFC4_IfcPipeSegmentType_type = new entity("IfcPipeSegmentType", false, 662, IFC4_IfcFlowSegmentType_type); + IFC4_IfcPlateType_type = new entity("IfcPlateType", false, 673, IFC4_IfcBuildingElementType_type); + IFC4_IfcPolygonalFaceSet_type = new entity("IfcPolygonalFaceSet", false, 680, IFC4_IfcTessellatedFaceSet_type); + IFC4_IfcPolyline_type = new entity("IfcPolyline", false, 681, IFC4_IfcBoundedCurve_type); + IFC4_IfcPort_type = new entity("IfcPort", true, 683, IFC4_IfcProduct_type); + IFC4_IfcProcedure_type = new entity("IfcProcedure", false, 705, IFC4_IfcProcess_type); + IFC4_IfcProjectOrder_type = new entity("IfcProjectOrder", false, 724, IFC4_IfcControl_type); + IFC4_IfcProjectionElement_type = new entity("IfcProjectionElement", false, 721, IFC4_IfcFeatureElementAddition_type); + IFC4_IfcProtectiveDeviceType_type = new entity("IfcProtectiveDeviceType", false, 749, IFC4_IfcFlowControllerType_type); + IFC4_IfcPumpType_type = new entity("IfcPumpType", false, 753, IFC4_IfcFlowMovingDeviceType_type); + IFC4_IfcRailingType_type = new entity("IfcRailingType", false, 764, IFC4_IfcBuildingElementType_type); + IFC4_IfcRampFlightType_type = new entity("IfcRampFlightType", false, 768, IFC4_IfcBuildingElementType_type); + IFC4_IfcRampType_type = new entity("IfcRampType", false, 770, IFC4_IfcBuildingElementType_type); + IFC4_IfcRationalBSplineSurfaceWithKnots_type = new entity("IfcRationalBSplineSurfaceWithKnots", false, 774, IFC4_IfcBSplineSurfaceWithKnots_type); + IFC4_IfcReinforcingElement_type = new entity("IfcReinforcingElement", true, 792, IFC4_IfcElementComponent_type); + IFC4_IfcReinforcingElementType_type = new entity("IfcReinforcingElementType", true, 793, IFC4_IfcElementComponentType_type); + IFC4_IfcReinforcingMesh_type = new entity("IfcReinforcingMesh", false, 794, IFC4_IfcReinforcingElement_type); + IFC4_IfcReinforcingMeshType_type = new entity("IfcReinforcingMeshType", false, 795, IFC4_IfcReinforcingElementType_type); + IFC4_IfcRelAggregates_type = new entity("IfcRelAggregates", false, 797, IFC4_IfcRelDecomposes_type); + IFC4_IfcRoofType_type = new entity("IfcRoofType", false, 863, IFC4_IfcBuildingElementType_type); + IFC4_IfcSanitaryTerminalType_type = new entity("IfcSanitaryTerminalType", false, 872, IFC4_IfcFlowTerminalType_type); + IFC4_IfcSeamCurve_type = new entity("IfcSeamCurve", false, 875, IFC4_IfcSurfaceCurve_type); + IFC4_IfcShadingDeviceType_type = new entity("IfcShadingDeviceType", false, 888, IFC4_IfcBuildingElementType_type); + IFC4_IfcSite_type = new entity("IfcSite", false, 901, IFC4_IfcSpatialStructureElement_type); + IFC4_IfcSlabType_type = new entity("IfcSlabType", false, 908, IFC4_IfcBuildingElementType_type); + IFC4_IfcSolarDeviceType_type = new entity("IfcSolarDeviceType", false, 912, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcSpace_type = new entity("IfcSpace", false, 921, IFC4_IfcSpatialStructureElement_type); + IFC4_IfcSpaceHeaterType_type = new entity("IfcSpaceHeaterType", false, 924, IFC4_IfcFlowTerminalType_type); + IFC4_IfcSpaceType_type = new entity("IfcSpaceType", false, 926, IFC4_IfcSpatialStructureElementType_type); + IFC4_IfcStackTerminalType_type = new entity("IfcStackTerminalType", false, 942, IFC4_IfcFlowTerminalType_type); + IFC4_IfcStairFlightType_type = new entity("IfcStairFlightType", false, 946, IFC4_IfcBuildingElementType_type); + IFC4_IfcStairType_type = new entity("IfcStairType", false, 948, IFC4_IfcBuildingElementType_type); + IFC4_IfcStructuralAction_type = new entity("IfcStructuralAction", true, 951, IFC4_IfcStructuralActivity_type); + IFC4_IfcStructuralConnection_type = new entity("IfcStructuralConnection", true, 955, IFC4_IfcStructuralItem_type); + IFC4_IfcStructuralCurveAction_type = new entity("IfcStructuralCurveAction", false, 957, IFC4_IfcStructuralAction_type); + IFC4_IfcStructuralCurveConnection_type = new entity("IfcStructuralCurveConnection", false, 959, IFC4_IfcStructuralConnection_type); + IFC4_IfcStructuralCurveMember_type = new entity("IfcStructuralCurveMember", false, 960, IFC4_IfcStructuralMember_type); + IFC4_IfcStructuralCurveMemberVarying_type = new entity("IfcStructuralCurveMemberVarying", false, 962, IFC4_IfcStructuralCurveMember_type); + IFC4_IfcStructuralCurveReaction_type = new entity("IfcStructuralCurveReaction", false, 963, IFC4_IfcStructuralReaction_type); + IFC4_IfcStructuralLinearAction_type = new entity("IfcStructuralLinearAction", false, 965, IFC4_IfcStructuralCurveAction_type); + IFC4_IfcStructuralLoadGroup_type = new entity("IfcStructuralLoadGroup", false, 969, IFC4_IfcGroup_type); + IFC4_IfcStructuralPointAction_type = new entity("IfcStructuralPointAction", false, 981, IFC4_IfcStructuralAction_type); + IFC4_IfcStructuralPointConnection_type = new entity("IfcStructuralPointConnection", false, 982, IFC4_IfcStructuralConnection_type); + IFC4_IfcStructuralPointReaction_type = new entity("IfcStructuralPointReaction", false, 983, IFC4_IfcStructuralReaction_type); + IFC4_IfcStructuralResultGroup_type = new entity("IfcStructuralResultGroup", false, 985, IFC4_IfcGroup_type); + IFC4_IfcStructuralSurfaceAction_type = new entity("IfcStructuralSurfaceAction", false, 986, IFC4_IfcStructuralAction_type); + IFC4_IfcStructuralSurfaceConnection_type = new entity("IfcStructuralSurfaceConnection", false, 988, IFC4_IfcStructuralConnection_type); + IFC4_IfcSubContractResource_type = new entity("IfcSubContractResource", false, 997, IFC4_IfcConstructionResource_type); + IFC4_IfcSurfaceFeature_type = new entity("IfcSurfaceFeature", false, 1004, IFC4_IfcFeatureElement_type); + IFC4_IfcSwitchingDeviceType_type = new entity("IfcSwitchingDeviceType", false, 1024, IFC4_IfcFlowControllerType_type); + IFC4_IfcSystem_type = new entity("IfcSystem", false, 1026, IFC4_IfcGroup_type); + IFC4_IfcSystemFurnitureElement_type = new entity("IfcSystemFurnitureElement", false, 1027, IFC4_IfcFurnishingElement_type); + IFC4_IfcTankType_type = new entity("IfcTankType", false, 1034, IFC4_IfcFlowStorageDeviceType_type); + IFC4_IfcTendon_type = new entity("IfcTendon", false, 1045, IFC4_IfcReinforcingElement_type); + IFC4_IfcTendonAnchor_type = new entity("IfcTendonAnchor", false, 1046, IFC4_IfcReinforcingElement_type); + IFC4_IfcTendonAnchorType_type = new entity("IfcTendonAnchorType", false, 1047, IFC4_IfcReinforcingElementType_type); + IFC4_IfcTendonType_type = new entity("IfcTendonType", false, 1049, IFC4_IfcReinforcingElementType_type); + IFC4_IfcTransformerType_type = new entity("IfcTransformerType", false, 1090, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcTransportElement_type = new entity("IfcTransportElement", false, 1094, IFC4_IfcElement_type); + IFC4_IfcTrimmedCurve_type = new entity("IfcTrimmedCurve", false, 1099, IFC4_IfcBoundedCurve_type); + IFC4_IfcTubeBundleType_type = new entity("IfcTubeBundleType", false, 1104, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcUnitaryEquipmentType_type = new entity("IfcUnitaryEquipmentType", false, 1115, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcValveType_type = new entity("IfcValveType", false, 1123, IFC4_IfcFlowControllerType_type); + IFC4_IfcVibrationIsolator_type = new entity("IfcVibrationIsolator", false, 1131, IFC4_IfcElementComponent_type); + IFC4_IfcVibrationIsolatorType_type = new entity("IfcVibrationIsolatorType", false, 1132, IFC4_IfcElementComponentType_type); + IFC4_IfcVirtualElement_type = new entity("IfcVirtualElement", false, 1134, IFC4_IfcElement_type); + IFC4_IfcVoidingFeature_type = new entity("IfcVoidingFeature", false, 1136, IFC4_IfcFeatureElementSubtraction_type); + IFC4_IfcWallType_type = new entity("IfcWallType", false, 1143, IFC4_IfcBuildingElementType_type); + IFC4_IfcWasteTerminalType_type = new entity("IfcWasteTerminalType", false, 1149, IFC4_IfcFlowTerminalType_type); + IFC4_IfcWindowType_type = new entity("IfcWindowType", false, 1160, IFC4_IfcBuildingElementType_type); + IFC4_IfcWorkCalendar_type = new entity("IfcWorkCalendar", false, 1163, IFC4_IfcControl_type); + IFC4_IfcWorkControl_type = new entity("IfcWorkControl", true, 1165, IFC4_IfcControl_type); + IFC4_IfcWorkPlan_type = new entity("IfcWorkPlan", false, 1166, IFC4_IfcWorkControl_type); + IFC4_IfcWorkSchedule_type = new entity("IfcWorkSchedule", false, 1168, IFC4_IfcWorkControl_type); + IFC4_IfcZone_type = new entity("IfcZone", false, 1171, IFC4_IfcSystem_type); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcCurveStyleFontAndScaling_type); @@ -5772,9 +5805,10 @@ IfcParse::schema_definition* IFC4_populate_schema() { IFC4_IfcCurveFontOrScaledCurveFontSelect_type = new select_type("IfcCurveFontOrScaledCurveFontSelect", 240, items); } { - std::vector items; items.reserve(2); + std::vector items; items.reserve(3); items.push_back(IFC4_IfcCompositeCurveOnSurface_type); items.push_back(IFC4_IfcPcurve_type); + items.push_back(IFC4_IfcSurfaceCurve_type); IFC4_IfcCurveOnSurface_type = new select_type("IfcCurveOnSurface", 242, items); } { @@ -5787,6756 +5821,7865 @@ IfcParse::schema_definition* IFC4_populate_schema() { std::vector items; items.reserve(2); items.push_back(IFC4_IfcElement_type); items.push_back(IFC4_IfcStructuralItem_type); - IFC4_IfcStructuralActivityAssignmentSelect_type = new select_type("IfcStructuralActivityAssignmentSelect", 947, items); + IFC4_IfcStructuralActivityAssignmentSelect_type = new select_type("IfcStructuralActivityAssignmentSelect", 953, items); } - IFC4_IfcActionRequest_type = new entity("IfcActionRequest", 2, IFC4_IfcControl_type); - IFC4_IfcAirTerminalBoxType_type = new entity("IfcAirTerminalBoxType", 19, IFC4_IfcFlowControllerType_type); - IFC4_IfcAirTerminalType_type = new entity("IfcAirTerminalType", 21, IFC4_IfcFlowTerminalType_type); - IFC4_IfcAirToAirHeatRecoveryType_type = new entity("IfcAirToAirHeatRecoveryType", 24, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcAsset_type = new entity("IfcAsset", 48, IFC4_IfcGroup_type); - IFC4_IfcAudioVisualApplianceType_type = new entity("IfcAudioVisualApplianceType", 51, IFC4_IfcFlowTerminalType_type); - IFC4_IfcBSplineCurve_type = new entity("IfcBSplineCurve", 85, IFC4_IfcBoundedCurve_type); - IFC4_IfcBSplineCurveWithKnots_type = new entity("IfcBSplineCurveWithKnots", 87, IFC4_IfcBSplineCurve_type); - IFC4_IfcBeamType_type = new entity("IfcBeamType", 59, IFC4_IfcBuildingElementType_type); - IFC4_IfcBoilerType_type = new entity("IfcBoilerType", 67, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcBoundaryCurve_type = new entity("IfcBoundaryCurve", 75, IFC4_IfcCompositeCurveOnSurface_type); - IFC4_IfcBuildingElement_type = new entity("IfcBuildingElement", 92, IFC4_IfcElement_type); - IFC4_IfcBuildingElementPart_type = new entity("IfcBuildingElementPart", 93, IFC4_IfcElementComponent_type); - IFC4_IfcBuildingElementPartType_type = new entity("IfcBuildingElementPartType", 94, IFC4_IfcElementComponentType_type); - IFC4_IfcBuildingElementProxy_type = new entity("IfcBuildingElementProxy", 96, IFC4_IfcBuildingElement_type); - IFC4_IfcBuildingElementProxyType_type = new entity("IfcBuildingElementProxyType", 97, IFC4_IfcBuildingElementType_type); - IFC4_IfcBuildingSystem_type = new entity("IfcBuildingSystem", 101, IFC4_IfcSystem_type); - IFC4_IfcBurnerType_type = new entity("IfcBurnerType", 104, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcCableCarrierFittingType_type = new entity("IfcCableCarrierFittingType", 107, IFC4_IfcFlowFittingType_type); - IFC4_IfcCableCarrierSegmentType_type = new entity("IfcCableCarrierSegmentType", 110, IFC4_IfcFlowSegmentType_type); - IFC4_IfcCableFittingType_type = new entity("IfcCableFittingType", 113, IFC4_IfcFlowFittingType_type); - IFC4_IfcCableSegmentType_type = new entity("IfcCableSegmentType", 116, IFC4_IfcFlowSegmentType_type); - IFC4_IfcChillerType_type = new entity("IfcChillerType", 131, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcChimney_type = new entity("IfcChimney", 133, IFC4_IfcBuildingElement_type); - IFC4_IfcCircle_type = new entity("IfcCircle", 136, IFC4_IfcConic_type); - IFC4_IfcCivilElement_type = new entity("IfcCivilElement", 139, IFC4_IfcElement_type); - IFC4_IfcCoilType_type = new entity("IfcCoilType", 147, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcColumn_type = new entity("IfcColumn", 154, IFC4_IfcBuildingElement_type); - IFC4_IfcColumnStandardCase_type = new entity("IfcColumnStandardCase", 155, IFC4_IfcColumn_type); - IFC4_IfcCommunicationsApplianceType_type = new entity("IfcCommunicationsApplianceType", 159, IFC4_IfcFlowTerminalType_type); - IFC4_IfcCompressorType_type = new entity("IfcCompressorType", 171, IFC4_IfcFlowMovingDeviceType_type); - IFC4_IfcCondenserType_type = new entity("IfcCondenserType", 174, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcConstructionEquipmentResource_type = new entity("IfcConstructionEquipmentResource", 187, IFC4_IfcConstructionResource_type); - IFC4_IfcConstructionMaterialResource_type = new entity("IfcConstructionMaterialResource", 190, IFC4_IfcConstructionResource_type); - IFC4_IfcConstructionProductResource_type = new entity("IfcConstructionProductResource", 193, IFC4_IfcConstructionResource_type); - IFC4_IfcCooledBeamType_type = new entity("IfcCooledBeamType", 208, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcCoolingTowerType_type = new entity("IfcCoolingTowerType", 211, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcCovering_type = new entity("IfcCovering", 222, IFC4_IfcBuildingElement_type); - IFC4_IfcCurtainWall_type = new entity("IfcCurtainWall", 233, IFC4_IfcBuildingElement_type); - IFC4_IfcDamperType_type = new entity("IfcDamperType", 251, IFC4_IfcFlowControllerType_type); - IFC4_IfcDiscreteAccessory_type = new entity("IfcDiscreteAccessory", 269, IFC4_IfcElementComponent_type); - IFC4_IfcDiscreteAccessoryType_type = new entity("IfcDiscreteAccessoryType", 270, IFC4_IfcElementComponentType_type); - IFC4_IfcDistributionChamberElementType_type = new entity("IfcDistributionChamberElementType", 273, IFC4_IfcDistributionFlowElementType_type); - IFC4_IfcDistributionControlElementType_type = new entity("IfcDistributionControlElementType", 277, IFC4_IfcDistributionElementType_type); - IFC4_IfcDistributionElement_type = new entity("IfcDistributionElement", 278, IFC4_IfcElement_type); - IFC4_IfcDistributionFlowElement_type = new entity("IfcDistributionFlowElement", 280, IFC4_IfcDistributionElement_type); - IFC4_IfcDistributionPort_type = new entity("IfcDistributionPort", 282, IFC4_IfcPort_type); - IFC4_IfcDistributionSystem_type = new entity("IfcDistributionSystem", 284, IFC4_IfcSystem_type); - IFC4_IfcDoor_type = new entity("IfcDoor", 292, IFC4_IfcBuildingElement_type); - IFC4_IfcDoorStandardCase_type = new entity("IfcDoorStandardCase", 297, IFC4_IfcDoor_type); - IFC4_IfcDuctFittingType_type = new entity("IfcDuctFittingType", 308, IFC4_IfcFlowFittingType_type); - IFC4_IfcDuctSegmentType_type = new entity("IfcDuctSegmentType", 311, IFC4_IfcFlowSegmentType_type); - IFC4_IfcDuctSilencerType_type = new entity("IfcDuctSilencerType", 314, IFC4_IfcFlowTreatmentDeviceType_type); - IFC4_IfcElectricApplianceType_type = new entity("IfcElectricApplianceType", 322, IFC4_IfcFlowTerminalType_type); - IFC4_IfcElectricDistributionBoardType_type = new entity("IfcElectricDistributionBoardType", 329, IFC4_IfcFlowControllerType_type); - IFC4_IfcElectricFlowStorageDeviceType_type = new entity("IfcElectricFlowStorageDeviceType", 332, IFC4_IfcFlowStorageDeviceType_type); - IFC4_IfcElectricGeneratorType_type = new entity("IfcElectricGeneratorType", 335, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcElectricMotorType_type = new entity("IfcElectricMotorType", 338, IFC4_IfcEnergyConversionDeviceType_type); - IFC4_IfcElectricTimeControlType_type = new entity("IfcElectricTimeControlType", 342, IFC4_IfcFlowControllerType_type); - IFC4_IfcEnergyConversionDevice_type = new entity("IfcEnergyConversionDevice", 357, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcEngine_type = new entity("IfcEngine", 360, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcEvaporativeCooler_type = new entity("IfcEvaporativeCooler", 363, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcEvaporator_type = new entity("IfcEvaporator", 366, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcExternalSpatialElement_type = new entity("IfcExternalSpatialElement", 381, IFC4_IfcExternalSpatialStructureElement_type); - IFC4_IfcFanType_type = new entity("IfcFanType", 395, IFC4_IfcFlowMovingDeviceType_type); - IFC4_IfcFilterType_type = new entity("IfcFilterType", 408, IFC4_IfcFlowTreatmentDeviceType_type); - IFC4_IfcFireSuppressionTerminalType_type = new entity("IfcFireSuppressionTerminalType", 411, IFC4_IfcFlowTerminalType_type); - IFC4_IfcFlowController_type = new entity("IfcFlowController", 414, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcFlowFitting_type = new entity("IfcFlowFitting", 417, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcFlowInstrumentType_type = new entity("IfcFlowInstrumentType", 420, IFC4_IfcDistributionControlElementType_type); - IFC4_IfcFlowMeter_type = new entity("IfcFlowMeter", 422, IFC4_IfcFlowController_type); - IFC4_IfcFlowMovingDevice_type = new entity("IfcFlowMovingDevice", 425, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcFlowSegment_type = new entity("IfcFlowSegment", 427, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcFlowStorageDevice_type = new entity("IfcFlowStorageDevice", 429, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcFlowTerminal_type = new entity("IfcFlowTerminal", 431, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcFlowTreatmentDevice_type = new entity("IfcFlowTreatmentDevice", 433, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcFooting_type = new entity("IfcFooting", 438, IFC4_IfcBuildingElement_type); - IFC4_IfcHeatExchanger_type = new entity("IfcHeatExchanger", 468, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcHumidifier_type = new entity("IfcHumidifier", 473, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcInterceptor_type = new entity("IfcInterceptor", 486, IFC4_IfcFlowTreatmentDevice_type); - IFC4_IfcJunctionBox_type = new entity("IfcJunctionBox", 497, IFC4_IfcFlowFitting_type); - IFC4_IfcLamp_type = new entity("IfcLamp", 507, IFC4_IfcFlowTerminal_type); - IFC4_IfcLightFixture_type = new entity("IfcLightFixture", 521, IFC4_IfcFlowTerminal_type); - IFC4_IfcMedicalDevice_type = new entity("IfcMedicalDevice", 580, IFC4_IfcFlowTerminal_type); - IFC4_IfcMember_type = new entity("IfcMember", 583, IFC4_IfcBuildingElement_type); - IFC4_IfcMemberStandardCase_type = new entity("IfcMemberStandardCase", 584, IFC4_IfcMember_type); - IFC4_IfcMotorConnection_type = new entity("IfcMotorConnection", 603, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcOuterBoundaryCurve_type = new entity("IfcOuterBoundaryCurve", 629, IFC4_IfcBoundaryCurve_type); - IFC4_IfcOutlet_type = new entity("IfcOutlet", 630, IFC4_IfcFlowTerminal_type); - IFC4_IfcPile_type = new entity("IfcPile", 651, IFC4_IfcBuildingElement_type); - IFC4_IfcPipeFitting_type = new entity("IfcPipeFitting", 655, IFC4_IfcFlowFitting_type); - IFC4_IfcPipeSegment_type = new entity("IfcPipeSegment", 658, IFC4_IfcFlowSegment_type); - IFC4_IfcPlate_type = new entity("IfcPlate", 668, IFC4_IfcBuildingElement_type); - IFC4_IfcPlateStandardCase_type = new entity("IfcPlateStandardCase", 669, IFC4_IfcPlate_type); - IFC4_IfcProtectiveDevice_type = new entity("IfcProtectiveDevice", 740, IFC4_IfcFlowController_type); - IFC4_IfcProtectiveDeviceTrippingUnitType_type = new entity("IfcProtectiveDeviceTrippingUnitType", 742, IFC4_IfcDistributionControlElementType_type); - IFC4_IfcPump_type = new entity("IfcPump", 747, IFC4_IfcFlowMovingDevice_type); - IFC4_IfcRailing_type = new entity("IfcRailing", 758, IFC4_IfcBuildingElement_type); - IFC4_IfcRamp_type = new entity("IfcRamp", 761, IFC4_IfcBuildingElement_type); - IFC4_IfcRampFlight_type = new entity("IfcRampFlight", 762, IFC4_IfcBuildingElement_type); - IFC4_IfcRationalBSplineCurveWithKnots_type = new entity("IfcRationalBSplineCurveWithKnots", 768, IFC4_IfcBSplineCurveWithKnots_type); - IFC4_IfcReinforcingBar_type = new entity("IfcReinforcingBar", 782, IFC4_IfcReinforcingElement_type); - IFC4_IfcReinforcingBarType_type = new entity("IfcReinforcingBarType", 785, IFC4_IfcReinforcingElementType_type); - IFC4_IfcRoof_type = new entity("IfcRoof", 857, IFC4_IfcBuildingElement_type); - IFC4_IfcSanitaryTerminal_type = new entity("IfcSanitaryTerminal", 866, IFC4_IfcFlowTerminal_type); - IFC4_IfcSensorType_type = new entity("IfcSensorType", 878, IFC4_IfcDistributionControlElementType_type); - IFC4_IfcShadingDevice_type = new entity("IfcShadingDevice", 881, IFC4_IfcBuildingElement_type); - IFC4_IfcSlab_type = new entity("IfcSlab", 899, IFC4_IfcBuildingElement_type); - IFC4_IfcSlabElementedCase_type = new entity("IfcSlabElementedCase", 900, IFC4_IfcSlab_type); - IFC4_IfcSlabStandardCase_type = new entity("IfcSlabStandardCase", 901, IFC4_IfcSlab_type); - IFC4_IfcSolarDevice_type = new entity("IfcSolarDevice", 905, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcSpaceHeater_type = new entity("IfcSpaceHeater", 917, IFC4_IfcFlowTerminal_type); - IFC4_IfcStackTerminal_type = new entity("IfcStackTerminal", 934, IFC4_IfcFlowTerminal_type); - IFC4_IfcStair_type = new entity("IfcStair", 937, IFC4_IfcBuildingElement_type); - IFC4_IfcStairFlight_type = new entity("IfcStairFlight", 938, IFC4_IfcBuildingElement_type); - IFC4_IfcStructuralAnalysisModel_type = new entity("IfcStructuralAnalysisModel", 948, IFC4_IfcSystem_type); - IFC4_IfcStructuralLoadCase_type = new entity("IfcStructuralLoadCase", 961, IFC4_IfcStructuralLoadGroup_type); - IFC4_IfcStructuralPlanarAction_type = new entity("IfcStructuralPlanarAction", 974, IFC4_IfcStructuralSurfaceAction_type); - IFC4_IfcSwitchingDevice_type = new entity("IfcSwitchingDevice", 1016, IFC4_IfcFlowController_type); - IFC4_IfcTank_type = new entity("IfcTank", 1026, IFC4_IfcFlowStorageDevice_type); - IFC4_IfcTransformer_type = new entity("IfcTransformer", 1081, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcTubeBundle_type = new entity("IfcTubeBundle", 1095, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcUnitaryControlElementType_type = new entity("IfcUnitaryControlElementType", 1104, IFC4_IfcDistributionControlElementType_type); - IFC4_IfcUnitaryEquipment_type = new entity("IfcUnitaryEquipment", 1106, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcValve_type = new entity("IfcValve", 1114, IFC4_IfcFlowController_type); - IFC4_IfcWall_type = new entity("IfcWall", 1132, IFC4_IfcBuildingElement_type); - IFC4_IfcWallElementedCase_type = new entity("IfcWallElementedCase", 1133, IFC4_IfcWall_type); - IFC4_IfcWallStandardCase_type = new entity("IfcWallStandardCase", 1134, IFC4_IfcWall_type); - IFC4_IfcWasteTerminal_type = new entity("IfcWasteTerminal", 1140, IFC4_IfcFlowTerminal_type); - IFC4_IfcWindow_type = new entity("IfcWindow", 1143, IFC4_IfcBuildingElement_type); - IFC4_IfcWindowStandardCase_type = new entity("IfcWindowStandardCase", 1148, IFC4_IfcWindow_type); + IFC4_IfcActionRequest_type = new entity("IfcActionRequest", false, 2, IFC4_IfcControl_type); + IFC4_IfcAirTerminalBoxType_type = new entity("IfcAirTerminalBoxType", false, 19, IFC4_IfcFlowControllerType_type); + IFC4_IfcAirTerminalType_type = new entity("IfcAirTerminalType", false, 21, IFC4_IfcFlowTerminalType_type); + IFC4_IfcAirToAirHeatRecoveryType_type = new entity("IfcAirToAirHeatRecoveryType", false, 24, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcAsset_type = new entity("IfcAsset", false, 48, IFC4_IfcGroup_type); + IFC4_IfcAudioVisualApplianceType_type = new entity("IfcAudioVisualApplianceType", false, 51, IFC4_IfcFlowTerminalType_type); + IFC4_IfcBSplineCurve_type = new entity("IfcBSplineCurve", true, 85, IFC4_IfcBoundedCurve_type); + IFC4_IfcBSplineCurveWithKnots_type = new entity("IfcBSplineCurveWithKnots", false, 87, IFC4_IfcBSplineCurve_type); + IFC4_IfcBeamType_type = new entity("IfcBeamType", false, 59, IFC4_IfcBuildingElementType_type); + IFC4_IfcBoilerType_type = new entity("IfcBoilerType", false, 67, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcBoundaryCurve_type = new entity("IfcBoundaryCurve", false, 75, IFC4_IfcCompositeCurveOnSurface_type); + IFC4_IfcBuildingElement_type = new entity("IfcBuildingElement", true, 92, IFC4_IfcElement_type); + IFC4_IfcBuildingElementPart_type = new entity("IfcBuildingElementPart", false, 93, IFC4_IfcElementComponent_type); + IFC4_IfcBuildingElementPartType_type = new entity("IfcBuildingElementPartType", false, 94, IFC4_IfcElementComponentType_type); + IFC4_IfcBuildingElementProxy_type = new entity("IfcBuildingElementProxy", false, 96, IFC4_IfcBuildingElement_type); + IFC4_IfcBuildingElementProxyType_type = new entity("IfcBuildingElementProxyType", false, 97, IFC4_IfcBuildingElementType_type); + IFC4_IfcBuildingSystem_type = new entity("IfcBuildingSystem", false, 101, IFC4_IfcSystem_type); + IFC4_IfcBurnerType_type = new entity("IfcBurnerType", false, 104, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcCableCarrierFittingType_type = new entity("IfcCableCarrierFittingType", false, 107, IFC4_IfcFlowFittingType_type); + IFC4_IfcCableCarrierSegmentType_type = new entity("IfcCableCarrierSegmentType", false, 110, IFC4_IfcFlowSegmentType_type); + IFC4_IfcCableFittingType_type = new entity("IfcCableFittingType", false, 113, IFC4_IfcFlowFittingType_type); + IFC4_IfcCableSegmentType_type = new entity("IfcCableSegmentType", false, 116, IFC4_IfcFlowSegmentType_type); + IFC4_IfcChillerType_type = new entity("IfcChillerType", false, 131, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcChimney_type = new entity("IfcChimney", false, 133, IFC4_IfcBuildingElement_type); + IFC4_IfcCircle_type = new entity("IfcCircle", false, 136, IFC4_IfcConic_type); + IFC4_IfcCivilElement_type = new entity("IfcCivilElement", false, 139, IFC4_IfcElement_type); + IFC4_IfcCoilType_type = new entity("IfcCoilType", false, 147, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcColumn_type = new entity("IfcColumn", false, 154, IFC4_IfcBuildingElement_type); + IFC4_IfcColumnStandardCase_type = new entity("IfcColumnStandardCase", false, 155, IFC4_IfcColumn_type); + IFC4_IfcCommunicationsApplianceType_type = new entity("IfcCommunicationsApplianceType", false, 159, IFC4_IfcFlowTerminalType_type); + IFC4_IfcCompressorType_type = new entity("IfcCompressorType", false, 171, IFC4_IfcFlowMovingDeviceType_type); + IFC4_IfcCondenserType_type = new entity("IfcCondenserType", false, 174, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcConstructionEquipmentResource_type = new entity("IfcConstructionEquipmentResource", false, 187, IFC4_IfcConstructionResource_type); + IFC4_IfcConstructionMaterialResource_type = new entity("IfcConstructionMaterialResource", false, 190, IFC4_IfcConstructionResource_type); + IFC4_IfcConstructionProductResource_type = new entity("IfcConstructionProductResource", false, 193, IFC4_IfcConstructionResource_type); + IFC4_IfcCooledBeamType_type = new entity("IfcCooledBeamType", false, 208, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcCoolingTowerType_type = new entity("IfcCoolingTowerType", false, 211, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcCovering_type = new entity("IfcCovering", false, 222, IFC4_IfcBuildingElement_type); + IFC4_IfcCurtainWall_type = new entity("IfcCurtainWall", false, 233, IFC4_IfcBuildingElement_type); + IFC4_IfcDamperType_type = new entity("IfcDamperType", false, 251, IFC4_IfcFlowControllerType_type); + IFC4_IfcDiscreteAccessory_type = new entity("IfcDiscreteAccessory", false, 269, IFC4_IfcElementComponent_type); + IFC4_IfcDiscreteAccessoryType_type = new entity("IfcDiscreteAccessoryType", false, 270, IFC4_IfcElementComponentType_type); + IFC4_IfcDistributionChamberElementType_type = new entity("IfcDistributionChamberElementType", false, 273, IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcDistributionControlElementType_type = new entity("IfcDistributionControlElementType", true, 277, IFC4_IfcDistributionElementType_type); + IFC4_IfcDistributionElement_type = new entity("IfcDistributionElement", false, 278, IFC4_IfcElement_type); + IFC4_IfcDistributionFlowElement_type = new entity("IfcDistributionFlowElement", false, 280, IFC4_IfcDistributionElement_type); + IFC4_IfcDistributionPort_type = new entity("IfcDistributionPort", false, 282, IFC4_IfcPort_type); + IFC4_IfcDistributionSystem_type = new entity("IfcDistributionSystem", false, 284, IFC4_IfcSystem_type); + IFC4_IfcDoor_type = new entity("IfcDoor", false, 292, IFC4_IfcBuildingElement_type); + IFC4_IfcDoorStandardCase_type = new entity("IfcDoorStandardCase", false, 297, IFC4_IfcDoor_type); + IFC4_IfcDuctFittingType_type = new entity("IfcDuctFittingType", false, 308, IFC4_IfcFlowFittingType_type); + IFC4_IfcDuctSegmentType_type = new entity("IfcDuctSegmentType", false, 311, IFC4_IfcFlowSegmentType_type); + IFC4_IfcDuctSilencerType_type = new entity("IfcDuctSilencerType", false, 314, IFC4_IfcFlowTreatmentDeviceType_type); + IFC4_IfcElectricApplianceType_type = new entity("IfcElectricApplianceType", false, 322, IFC4_IfcFlowTerminalType_type); + IFC4_IfcElectricDistributionBoardType_type = new entity("IfcElectricDistributionBoardType", false, 329, IFC4_IfcFlowControllerType_type); + IFC4_IfcElectricFlowStorageDeviceType_type = new entity("IfcElectricFlowStorageDeviceType", false, 332, IFC4_IfcFlowStorageDeviceType_type); + IFC4_IfcElectricGeneratorType_type = new entity("IfcElectricGeneratorType", false, 335, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcElectricMotorType_type = new entity("IfcElectricMotorType", false, 338, IFC4_IfcEnergyConversionDeviceType_type); + IFC4_IfcElectricTimeControlType_type = new entity("IfcElectricTimeControlType", false, 342, IFC4_IfcFlowControllerType_type); + IFC4_IfcEnergyConversionDevice_type = new entity("IfcEnergyConversionDevice", false, 357, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcEngine_type = new entity("IfcEngine", false, 360, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcEvaporativeCooler_type = new entity("IfcEvaporativeCooler", false, 363, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcEvaporator_type = new entity("IfcEvaporator", false, 366, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcExternalSpatialElement_type = new entity("IfcExternalSpatialElement", false, 381, IFC4_IfcExternalSpatialStructureElement_type); + IFC4_IfcFanType_type = new entity("IfcFanType", false, 395, IFC4_IfcFlowMovingDeviceType_type); + IFC4_IfcFilterType_type = new entity("IfcFilterType", false, 408, IFC4_IfcFlowTreatmentDeviceType_type); + IFC4_IfcFireSuppressionTerminalType_type = new entity("IfcFireSuppressionTerminalType", false, 411, IFC4_IfcFlowTerminalType_type); + IFC4_IfcFlowController_type = new entity("IfcFlowController", false, 414, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcFlowFitting_type = new entity("IfcFlowFitting", false, 417, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcFlowInstrumentType_type = new entity("IfcFlowInstrumentType", false, 420, IFC4_IfcDistributionControlElementType_type); + IFC4_IfcFlowMeter_type = new entity("IfcFlowMeter", false, 422, IFC4_IfcFlowController_type); + IFC4_IfcFlowMovingDevice_type = new entity("IfcFlowMovingDevice", false, 425, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcFlowSegment_type = new entity("IfcFlowSegment", false, 427, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcFlowStorageDevice_type = new entity("IfcFlowStorageDevice", false, 429, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcFlowTerminal_type = new entity("IfcFlowTerminal", false, 431, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcFlowTreatmentDevice_type = new entity("IfcFlowTreatmentDevice", false, 433, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcFooting_type = new entity("IfcFooting", false, 438, IFC4_IfcBuildingElement_type); + IFC4_IfcHeatExchanger_type = new entity("IfcHeatExchanger", false, 468, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcHumidifier_type = new entity("IfcHumidifier", false, 473, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcInterceptor_type = new entity("IfcInterceptor", false, 488, IFC4_IfcFlowTreatmentDevice_type); + IFC4_IfcJunctionBox_type = new entity("IfcJunctionBox", false, 500, IFC4_IfcFlowFitting_type); + IFC4_IfcLamp_type = new entity("IfcLamp", false, 510, IFC4_IfcFlowTerminal_type); + IFC4_IfcLightFixture_type = new entity("IfcLightFixture", false, 524, IFC4_IfcFlowTerminal_type); + IFC4_IfcMedicalDevice_type = new entity("IfcMedicalDevice", false, 583, IFC4_IfcFlowTerminal_type); + IFC4_IfcMember_type = new entity("IfcMember", false, 586, IFC4_IfcBuildingElement_type); + IFC4_IfcMemberStandardCase_type = new entity("IfcMemberStandardCase", false, 587, IFC4_IfcMember_type); + IFC4_IfcMotorConnection_type = new entity("IfcMotorConnection", false, 606, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcOuterBoundaryCurve_type = new entity("IfcOuterBoundaryCurve", false, 632, IFC4_IfcBoundaryCurve_type); + IFC4_IfcOutlet_type = new entity("IfcOutlet", false, 633, IFC4_IfcFlowTerminal_type); + IFC4_IfcPile_type = new entity("IfcPile", false, 654, IFC4_IfcBuildingElement_type); + IFC4_IfcPipeFitting_type = new entity("IfcPipeFitting", false, 658, IFC4_IfcFlowFitting_type); + IFC4_IfcPipeSegment_type = new entity("IfcPipeSegment", false, 661, IFC4_IfcFlowSegment_type); + IFC4_IfcPlate_type = new entity("IfcPlate", false, 671, IFC4_IfcBuildingElement_type); + IFC4_IfcPlateStandardCase_type = new entity("IfcPlateStandardCase", false, 672, IFC4_IfcPlate_type); + IFC4_IfcProtectiveDevice_type = new entity("IfcProtectiveDevice", false, 745, IFC4_IfcFlowController_type); + IFC4_IfcProtectiveDeviceTrippingUnitType_type = new entity("IfcProtectiveDeviceTrippingUnitType", false, 747, IFC4_IfcDistributionControlElementType_type); + IFC4_IfcPump_type = new entity("IfcPump", false, 752, IFC4_IfcFlowMovingDevice_type); + IFC4_IfcRailing_type = new entity("IfcRailing", false, 763, IFC4_IfcBuildingElement_type); + IFC4_IfcRamp_type = new entity("IfcRamp", false, 766, IFC4_IfcBuildingElement_type); + IFC4_IfcRampFlight_type = new entity("IfcRampFlight", false, 767, IFC4_IfcBuildingElement_type); + IFC4_IfcRationalBSplineCurveWithKnots_type = new entity("IfcRationalBSplineCurveWithKnots", false, 773, IFC4_IfcBSplineCurveWithKnots_type); + IFC4_IfcReinforcingBar_type = new entity("IfcReinforcingBar", false, 787, IFC4_IfcReinforcingElement_type); + IFC4_IfcReinforcingBarType_type = new entity("IfcReinforcingBarType", false, 790, IFC4_IfcReinforcingElementType_type); + IFC4_IfcRoof_type = new entity("IfcRoof", false, 862, IFC4_IfcBuildingElement_type); + IFC4_IfcSanitaryTerminal_type = new entity("IfcSanitaryTerminal", false, 871, IFC4_IfcFlowTerminal_type); + IFC4_IfcSensorType_type = new entity("IfcSensorType", false, 884, IFC4_IfcDistributionControlElementType_type); + IFC4_IfcShadingDevice_type = new entity("IfcShadingDevice", false, 887, IFC4_IfcBuildingElement_type); + IFC4_IfcSlab_type = new entity("IfcSlab", false, 905, IFC4_IfcBuildingElement_type); + IFC4_IfcSlabElementedCase_type = new entity("IfcSlabElementedCase", false, 906, IFC4_IfcSlab_type); + IFC4_IfcSlabStandardCase_type = new entity("IfcSlabStandardCase", false, 907, IFC4_IfcSlab_type); + IFC4_IfcSolarDevice_type = new entity("IfcSolarDevice", false, 911, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcSpaceHeater_type = new entity("IfcSpaceHeater", false, 923, IFC4_IfcFlowTerminal_type); + IFC4_IfcStackTerminal_type = new entity("IfcStackTerminal", false, 941, IFC4_IfcFlowTerminal_type); + IFC4_IfcStair_type = new entity("IfcStair", false, 944, IFC4_IfcBuildingElement_type); + IFC4_IfcStairFlight_type = new entity("IfcStairFlight", false, 945, IFC4_IfcBuildingElement_type); + IFC4_IfcStructuralAnalysisModel_type = new entity("IfcStructuralAnalysisModel", false, 954, IFC4_IfcSystem_type); + IFC4_IfcStructuralLoadCase_type = new entity("IfcStructuralLoadCase", false, 967, IFC4_IfcStructuralLoadGroup_type); + IFC4_IfcStructuralPlanarAction_type = new entity("IfcStructuralPlanarAction", false, 980, IFC4_IfcStructuralSurfaceAction_type); + IFC4_IfcSwitchingDevice_type = new entity("IfcSwitchingDevice", false, 1023, IFC4_IfcFlowController_type); + IFC4_IfcTank_type = new entity("IfcTank", false, 1033, IFC4_IfcFlowStorageDevice_type); + IFC4_IfcTransformer_type = new entity("IfcTransformer", false, 1089, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcTubeBundle_type = new entity("IfcTubeBundle", false, 1103, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcUnitaryControlElementType_type = new entity("IfcUnitaryControlElementType", false, 1112, IFC4_IfcDistributionControlElementType_type); + IFC4_IfcUnitaryEquipment_type = new entity("IfcUnitaryEquipment", false, 1114, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcValve_type = new entity("IfcValve", false, 1122, IFC4_IfcFlowController_type); + IFC4_IfcWall_type = new entity("IfcWall", false, 1140, IFC4_IfcBuildingElement_type); + IFC4_IfcWallElementedCase_type = new entity("IfcWallElementedCase", false, 1141, IFC4_IfcWall_type); + IFC4_IfcWallStandardCase_type = new entity("IfcWallStandardCase", false, 1142, IFC4_IfcWall_type); + IFC4_IfcWasteTerminal_type = new entity("IfcWasteTerminal", false, 1148, IFC4_IfcFlowTerminal_type); + IFC4_IfcWindow_type = new entity("IfcWindow", false, 1151, IFC4_IfcBuildingElement_type); + IFC4_IfcWindowStandardCase_type = new entity("IfcWindowStandardCase", false, 1156, IFC4_IfcWindow_type); { std::vector items; items.reserve(2); items.push_back(IFC4_IfcExternalSpatialElement_type); items.push_back(IFC4_IfcSpace_type); - IFC4_IfcSpaceBoundarySelect_type = new select_type("IfcSpaceBoundarySelect", 916, items); + IFC4_IfcSpaceBoundarySelect_type = new select_type("IfcSpaceBoundarySelect", 922, items); } - IFC4_IfcActuatorType_type = new entity("IfcActuatorType", 10, IFC4_IfcDistributionControlElementType_type); - IFC4_IfcAirTerminal_type = new entity("IfcAirTerminal", 17, IFC4_IfcFlowTerminal_type); - IFC4_IfcAirTerminalBox_type = new entity("IfcAirTerminalBox", 18, IFC4_IfcFlowController_type); - IFC4_IfcAirToAirHeatRecovery_type = new entity("IfcAirToAirHeatRecovery", 23, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcAlarmType_type = new entity("IfcAlarmType", 27, IFC4_IfcDistributionControlElementType_type); - IFC4_IfcAudioVisualAppliance_type = new entity("IfcAudioVisualAppliance", 50, IFC4_IfcFlowTerminal_type); - IFC4_IfcBeam_type = new entity("IfcBeam", 57, IFC4_IfcBuildingElement_type); - IFC4_IfcBeamStandardCase_type = new entity("IfcBeamStandardCase", 58, IFC4_IfcBeam_type); - IFC4_IfcBoiler_type = new entity("IfcBoiler", 66, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcBurner_type = new entity("IfcBurner", 103, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcCableCarrierFitting_type = new entity("IfcCableCarrierFitting", 106, IFC4_IfcFlowFitting_type); - IFC4_IfcCableCarrierSegment_type = new entity("IfcCableCarrierSegment", 109, IFC4_IfcFlowSegment_type); - IFC4_IfcCableFitting_type = new entity("IfcCableFitting", 112, IFC4_IfcFlowFitting_type); - IFC4_IfcCableSegment_type = new entity("IfcCableSegment", 115, IFC4_IfcFlowSegment_type); - IFC4_IfcChiller_type = new entity("IfcChiller", 130, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcCoil_type = new entity("IfcCoil", 146, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcCommunicationsAppliance_type = new entity("IfcCommunicationsAppliance", 158, IFC4_IfcFlowTerminal_type); - IFC4_IfcCompressor_type = new entity("IfcCompressor", 170, IFC4_IfcFlowMovingDevice_type); - IFC4_IfcCondenser_type = new entity("IfcCondenser", 173, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcControllerType_type = new entity("IfcControllerType", 203, IFC4_IfcDistributionControlElementType_type); - IFC4_IfcCooledBeam_type = new entity("IfcCooledBeam", 207, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcCoolingTower_type = new entity("IfcCoolingTower", 210, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcDamper_type = new entity("IfcDamper", 250, IFC4_IfcFlowController_type); - IFC4_IfcDistributionChamberElement_type = new entity("IfcDistributionChamberElement", 272, IFC4_IfcDistributionFlowElement_type); - IFC4_IfcDistributionCircuit_type = new entity("IfcDistributionCircuit", 275, IFC4_IfcDistributionSystem_type); - IFC4_IfcDistributionControlElement_type = new entity("IfcDistributionControlElement", 276, IFC4_IfcDistributionElement_type); - IFC4_IfcDuctFitting_type = new entity("IfcDuctFitting", 307, IFC4_IfcFlowFitting_type); - IFC4_IfcDuctSegment_type = new entity("IfcDuctSegment", 310, IFC4_IfcFlowSegment_type); - IFC4_IfcDuctSilencer_type = new entity("IfcDuctSilencer", 313, IFC4_IfcFlowTreatmentDevice_type); - IFC4_IfcElectricAppliance_type = new entity("IfcElectricAppliance", 321, IFC4_IfcFlowTerminal_type); - IFC4_IfcElectricDistributionBoard_type = new entity("IfcElectricDistributionBoard", 328, IFC4_IfcFlowController_type); - IFC4_IfcElectricFlowStorageDevice_type = new entity("IfcElectricFlowStorageDevice", 331, IFC4_IfcFlowStorageDevice_type); - IFC4_IfcElectricGenerator_type = new entity("IfcElectricGenerator", 334, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcElectricMotor_type = new entity("IfcElectricMotor", 337, IFC4_IfcEnergyConversionDevice_type); - IFC4_IfcElectricTimeControl_type = new entity("IfcElectricTimeControl", 341, IFC4_IfcFlowController_type); - IFC4_IfcFan_type = new entity("IfcFan", 394, IFC4_IfcFlowMovingDevice_type); - IFC4_IfcFilter_type = new entity("IfcFilter", 407, IFC4_IfcFlowTreatmentDevice_type); - IFC4_IfcFireSuppressionTerminal_type = new entity("IfcFireSuppressionTerminal", 410, IFC4_IfcFlowTerminal_type); - IFC4_IfcFlowInstrument_type = new entity("IfcFlowInstrument", 419, IFC4_IfcDistributionControlElement_type); - IFC4_IfcProtectiveDeviceTrippingUnit_type = new entity("IfcProtectiveDeviceTrippingUnit", 741, IFC4_IfcDistributionControlElement_type); - IFC4_IfcSensor_type = new entity("IfcSensor", 877, IFC4_IfcDistributionControlElement_type); - IFC4_IfcUnitaryControlElement_type = new entity("IfcUnitaryControlElement", 1103, IFC4_IfcDistributionControlElement_type); - IFC4_IfcActuator_type = new entity("IfcActuator", 9, IFC4_IfcDistributionControlElement_type); - IFC4_IfcAlarm_type = new entity("IfcAlarm", 26, IFC4_IfcDistributionControlElement_type); - IFC4_IfcController_type = new entity("IfcController", 202, IFC4_IfcDistributionControlElement_type); + IFC4_IfcActuatorType_type = new entity("IfcActuatorType", false, 10, IFC4_IfcDistributionControlElementType_type); + IFC4_IfcAirTerminal_type = new entity("IfcAirTerminal", false, 17, IFC4_IfcFlowTerminal_type); + IFC4_IfcAirTerminalBox_type = new entity("IfcAirTerminalBox", false, 18, IFC4_IfcFlowController_type); + IFC4_IfcAirToAirHeatRecovery_type = new entity("IfcAirToAirHeatRecovery", false, 23, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcAlarmType_type = new entity("IfcAlarmType", false, 27, IFC4_IfcDistributionControlElementType_type); + IFC4_IfcAudioVisualAppliance_type = new entity("IfcAudioVisualAppliance", false, 50, IFC4_IfcFlowTerminal_type); + IFC4_IfcBeam_type = new entity("IfcBeam", false, 57, IFC4_IfcBuildingElement_type); + IFC4_IfcBeamStandardCase_type = new entity("IfcBeamStandardCase", false, 58, IFC4_IfcBeam_type); + IFC4_IfcBoiler_type = new entity("IfcBoiler", false, 66, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcBurner_type = new entity("IfcBurner", false, 103, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcCableCarrierFitting_type = new entity("IfcCableCarrierFitting", false, 106, IFC4_IfcFlowFitting_type); + IFC4_IfcCableCarrierSegment_type = new entity("IfcCableCarrierSegment", false, 109, IFC4_IfcFlowSegment_type); + IFC4_IfcCableFitting_type = new entity("IfcCableFitting", false, 112, IFC4_IfcFlowFitting_type); + IFC4_IfcCableSegment_type = new entity("IfcCableSegment", false, 115, IFC4_IfcFlowSegment_type); + IFC4_IfcChiller_type = new entity("IfcChiller", false, 130, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcCoil_type = new entity("IfcCoil", false, 146, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcCommunicationsAppliance_type = new entity("IfcCommunicationsAppliance", false, 158, IFC4_IfcFlowTerminal_type); + IFC4_IfcCompressor_type = new entity("IfcCompressor", false, 170, IFC4_IfcFlowMovingDevice_type); + IFC4_IfcCondenser_type = new entity("IfcCondenser", false, 173, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcControllerType_type = new entity("IfcControllerType", false, 203, IFC4_IfcDistributionControlElementType_type); + IFC4_IfcCooledBeam_type = new entity("IfcCooledBeam", false, 207, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcCoolingTower_type = new entity("IfcCoolingTower", false, 210, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcDamper_type = new entity("IfcDamper", false, 250, IFC4_IfcFlowController_type); + IFC4_IfcDistributionChamberElement_type = new entity("IfcDistributionChamberElement", false, 272, IFC4_IfcDistributionFlowElement_type); + IFC4_IfcDistributionCircuit_type = new entity("IfcDistributionCircuit", false, 275, IFC4_IfcDistributionSystem_type); + IFC4_IfcDistributionControlElement_type = new entity("IfcDistributionControlElement", false, 276, IFC4_IfcDistributionElement_type); + IFC4_IfcDuctFitting_type = new entity("IfcDuctFitting", false, 307, IFC4_IfcFlowFitting_type); + IFC4_IfcDuctSegment_type = new entity("IfcDuctSegment", false, 310, IFC4_IfcFlowSegment_type); + IFC4_IfcDuctSilencer_type = new entity("IfcDuctSilencer", false, 313, IFC4_IfcFlowTreatmentDevice_type); + IFC4_IfcElectricAppliance_type = new entity("IfcElectricAppliance", false, 321, IFC4_IfcFlowTerminal_type); + IFC4_IfcElectricDistributionBoard_type = new entity("IfcElectricDistributionBoard", false, 328, IFC4_IfcFlowController_type); + IFC4_IfcElectricFlowStorageDevice_type = new entity("IfcElectricFlowStorageDevice", false, 331, IFC4_IfcFlowStorageDevice_type); + IFC4_IfcElectricGenerator_type = new entity("IfcElectricGenerator", false, 334, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcElectricMotor_type = new entity("IfcElectricMotor", false, 337, IFC4_IfcEnergyConversionDevice_type); + IFC4_IfcElectricTimeControl_type = new entity("IfcElectricTimeControl", false, 341, IFC4_IfcFlowController_type); + IFC4_IfcFan_type = new entity("IfcFan", false, 394, IFC4_IfcFlowMovingDevice_type); + IFC4_IfcFilter_type = new entity("IfcFilter", false, 407, IFC4_IfcFlowTreatmentDevice_type); + IFC4_IfcFireSuppressionTerminal_type = new entity("IfcFireSuppressionTerminal", false, 410, IFC4_IfcFlowTerminal_type); + IFC4_IfcFlowInstrument_type = new entity("IfcFlowInstrument", false, 419, IFC4_IfcDistributionControlElement_type); + IFC4_IfcProtectiveDeviceTrippingUnit_type = new entity("IfcProtectiveDeviceTrippingUnit", false, 746, IFC4_IfcDistributionControlElement_type); + IFC4_IfcSensor_type = new entity("IfcSensor", false, 883, IFC4_IfcDistributionControlElement_type); + IFC4_IfcUnitaryControlElement_type = new entity("IfcUnitaryControlElement", false, 1111, IFC4_IfcDistributionControlElement_type); + IFC4_IfcActuator_type = new entity("IfcActuator", false, 9, IFC4_IfcDistributionControlElement_type); + IFC4_IfcAlarm_type = new entity("IfcAlarm", false, 26, IFC4_IfcDistributionControlElement_type); + IFC4_IfcController_type = new entity("IfcController", false, 202, IFC4_IfcDistributionControlElement_type); { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcActionRequestTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcActionRequestTypeEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActionRequest_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TheActor", new named_type(IFC4_IfcActorSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TheActor", new named_type(IFC4_IfcActorSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Role", new named_type(IFC4_IfcRoleEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedRole", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Role", new named_type(IFC4_IfcRoleEnum_type), false)); + attributes.push_back(new attribute("UserDefinedRole", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActorRole_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcActuatorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcActuatorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActuator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcActuatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcActuatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActuatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC4_IfcAddressTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPurpose", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Purpose", new named_type(IFC4_IfcAddressTypeEnum_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("UserDefinedPurpose", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcAdvancedBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClosedShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClosedShell_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcAdvancedBrepWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAdvancedFace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalBoxTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalBoxTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirTerminalBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalBoxTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalBoxTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirTerminalBoxType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirToAirHeatRecovery_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirToAirHeatRecoveryType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAlarmTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAlarmTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAlarm_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAlarmTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAlarmTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAlarmType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAnnotation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OuterBoundary", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCurve_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OuterBoundary", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCurve_type)), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcAnnotationFillArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ApplicationDeveloper", new named_type(IFC4_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("Version", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ApplicationFullName", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ApplicationIdentifier", new named_type(IFC4_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ApplicationDeveloper", new named_type(IFC4_IfcOrganization_type), false)); + attributes.push_back(new attribute("Version", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("ApplicationFullName", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("ApplicationIdentifier", new named_type(IFC4_IfcIdentifier_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcApplication_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(10); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("AppliedValue", new named_type(IFC4_IfcAppliedValueSelect_type), true)); - attributes.push_back(new entity::attribute("UnitBasis", new named_type(IFC4_IfcMeasureWithUnit_type), true)); - attributes.push_back(new entity::attribute("ApplicableDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("FixedUntilDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Condition", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ArithmeticOperator", new named_type(IFC4_IfcArithmeticOperatorEnum_type), true)); - attributes.push_back(new entity::attribute("Components", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); + std::vector attributes; attributes.reserve(10); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("AppliedValue", new named_type(IFC4_IfcAppliedValueSelect_type), true)); + attributes.push_back(new attribute("UnitBasis", new named_type(IFC4_IfcMeasureWithUnit_type), true)); + attributes.push_back(new attribute("ApplicableDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("FixedUntilDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Condition", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ArithmeticOperator", new named_type(IFC4_IfcArithmeticOperatorEnum_type), true)); + attributes.push_back(new attribute("Components", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAppliedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("TimeOfApproval", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Level", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Qualifier", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("RequestingApproval", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("GivingApproval", new named_type(IFC4_IfcActorSelect_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("TimeOfApproval", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Level", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Qualifier", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("RequestingApproval", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("GivingApproval", new named_type(IFC4_IfcActorSelect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcApproval_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); - attributes.push_back(new entity::attribute("RelatedApprovals", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcApproval_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); + attributes.push_back(new attribute("RelatedApprovals", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcApproval_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcApprovalRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("OuterCurve", new named_type(IFC4_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("OuterCurve", new named_type(IFC4_IfcCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcArbitraryClosedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Curve", new named_type(IFC4_IfcBoundedCurve_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Curve", new named_type(IFC4_IfcBoundedCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcArbitraryOpenProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("InnerCurves", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCurve_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("InnerCurves", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCurve_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcArbitraryProfileDefWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("OriginalValue", new named_type(IFC4_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("CurrentValue", new named_type(IFC4_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("TotalReplacementCost", new named_type(IFC4_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("Owner", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("User", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("ResponsiblePerson", new named_type(IFC4_IfcPerson_type), true)); - attributes.push_back(new entity::attribute("IncorporationDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("DepreciatedValue", new named_type(IFC4_IfcCostValue_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("OriginalValue", new named_type(IFC4_IfcCostValue_type), true)); + attributes.push_back(new attribute("CurrentValue", new named_type(IFC4_IfcCostValue_type), true)); + attributes.push_back(new attribute("TotalReplacementCost", new named_type(IFC4_IfcCostValue_type), true)); + attributes.push_back(new attribute("Owner", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("User", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("ResponsiblePerson", new named_type(IFC4_IfcPerson_type), true)); + attributes.push_back(new attribute("IncorporationDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("DepreciatedValue", new named_type(IFC4_IfcCostValue_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAsset_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::attribute("BottomFlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("OverallDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BottomFlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BottomFlangeFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopFlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BottomFlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BottomFlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new attribute("BottomFlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("OverallDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BottomFlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BottomFlangeFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopFlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("BottomFlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("BottomFlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAsymmetricIShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAudioVisualApplianceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAudioVisualApplianceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAudioVisualAppliance_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAudioVisualApplianceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAudioVisualApplianceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAudioVisualApplianceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcAxis1Placement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RefDirection", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcAxis2Placement2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcDirection_type), true)); + attributes.push_back(new attribute("RefDirection", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAxis2Placement3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Degree", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); - attributes.push_back(new entity::attribute("CurveForm", new named_type(IFC4_IfcBSplineCurveForm_type), false)); - attributes.push_back(new entity::attribute("ClosedCurve", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Degree", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); + attributes.push_back(new attribute("CurveForm", new named_type(IFC4_IfcBSplineCurveForm_type), false)); + attributes.push_back(new attribute("ClosedCurve", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBSplineCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("KnotMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("Knots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); - attributes.push_back(new entity::attribute("KnotSpec", new named_type(IFC4_IfcKnotType_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("KnotMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("Knots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); + attributes.push_back(new attribute("KnotSpec", new named_type(IFC4_IfcKnotType_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBSplineCurveWithKnots_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("UDegree", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("VDegree", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type))), false)); - attributes.push_back(new entity::attribute("SurfaceForm", new named_type(IFC4_IfcBSplineSurfaceForm_type), false)); - attributes.push_back(new entity::attribute("UClosed", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("VClosed", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("UDegree", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("VDegree", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type))), false)); + attributes.push_back(new attribute("SurfaceForm", new named_type(IFC4_IfcBSplineSurfaceForm_type), false)); + attributes.push_back(new attribute("UClosed", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("VClosed", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBSplineSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("UMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("VMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("UKnots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); - attributes.push_back(new entity::attribute("VKnots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); - attributes.push_back(new entity::attribute("KnotSpec", new named_type(IFC4_IfcKnotType_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("UMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("VMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("UKnots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); + attributes.push_back(new attribute("VKnots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); + attributes.push_back(new attribute("KnotSpec", new named_type(IFC4_IfcKnotType_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBSplineSurfaceWithKnots_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBeamTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBeamTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBeam_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBeamStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBeamTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBeamTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBeamType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RasterFormat", new named_type(IFC4_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("RasterCode", new named_type(IFC4_IfcBinary_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RasterFormat", new named_type(IFC4_IfcIdentifier_type), false)); + attributes.push_back(new attribute("RasterCode", new named_type(IFC4_IfcBinary_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBlobTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("XLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ZLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("XLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ZLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBlock_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBoilerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBoilerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoiler_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBoilerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBoilerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoilerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBooleanClippingResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Operator", new named_type(IFC4_IfcBooleanOperator_type), false)); - attributes.push_back(new entity::attribute("FirstOperand", new named_type(IFC4_IfcBooleanOperand_type), false)); - attributes.push_back(new entity::attribute("SecondOperand", new named_type(IFC4_IfcBooleanOperand_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Operator", new named_type(IFC4_IfcBooleanOperator_type), false)); + attributes.push_back(new attribute("FirstOperand", new named_type(IFC4_IfcBooleanOperand_type), false)); + attributes.push_back(new attribute("SecondOperand", new named_type(IFC4_IfcBooleanOperand_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBooleanResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcBoundaryCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TranslationalStiffnessByLengthX", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessByLengthY", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessByLengthZ", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthX", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthY", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthZ", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TranslationalStiffnessByLengthX", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessByLengthY", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessByLengthZ", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthX", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthY", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthZ", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryEdgeCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TranslationalStiffnessByAreaX", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessByAreaY", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessByAreaZ", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TranslationalStiffnessByAreaX", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessByAreaY", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessByAreaZ", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryFaceCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TranslationalStiffnessX", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessY", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessZ", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessX", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessY", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessZ", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TranslationalStiffnessX", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessY", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessZ", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessX", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessY", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessZ", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryNodeCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WarpingStiffness", new named_type(IFC4_IfcWarpingStiffnessSelect_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WarpingStiffness", new named_type(IFC4_IfcWarpingStiffnessSelect_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryNodeConditionWarping_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcBoundedCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcBoundedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Corner", new named_type(IFC4_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("XDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ZDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Corner", new named_type(IFC4_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("XDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ZDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundingBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Enclosure", new named_type(IFC4_IfcBoundingBox_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Enclosure", new named_type(IFC4_IfcBoundingBox_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoxedHalfSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ElevationOfRefHeight", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ElevationOfTerrain", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BuildingAddress", new named_type(IFC4_IfcPostalAddress_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ElevationOfRefHeight", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ElevationOfTerrain", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("BuildingAddress", new named_type(IFC4_IfcPostalAddress_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuilding_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementPartTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementPartTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementPart_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementPartTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementPartTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementPartType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementProxyTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementProxyTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementProxy_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementProxyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementProxyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementProxyType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Elevation", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Elevation", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingStorey_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingSystemTypeEnum_type), true)); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingSystemTypeEnum_type), true)); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBurnerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBurnerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBurner_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBurnerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBurnerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBurnerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Width", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Girth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InternalFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Width", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Girth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InternalFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierFittingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierFittingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableCarrierFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableCarrierFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierSegmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierSegmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableCarrierSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableCarrierSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableFittingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableFittingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableSegmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableSegmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC4_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC4_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCartesianPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcCartesianPointList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CoordList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcLengthMeasure_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CoordList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcLengthMeasure_type))), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCartesianPointList2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CoordList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcLengthMeasure_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CoordList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcLengthMeasure_type))), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCartesianPointList3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Axis1", new named_type(IFC4_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("Axis2", new named_type(IFC4_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("LocalOrigin", new named_type(IFC4_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Scale", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Axis1", new named_type(IFC4_IfcDirection_type), true)); + attributes.push_back(new attribute("Axis2", new named_type(IFC4_IfcDirection_type), true)); + attributes.push_back(new attribute("LocalOrigin", new named_type(IFC4_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Scale", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Scale2", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Scale2", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator2DnonUniform_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis3", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis3", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Scale2", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("Scale3", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Scale2", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("Scale3", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator3DnonUniform_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCenterLineProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcChillerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcChillerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcChiller_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcChillerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcChillerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcChillerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcChimneyTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcChimneyTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcChimney_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcChimneyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcChimneyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcChimneyType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCircle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCircleHollowProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCircleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCivilElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCivilElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Source", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Edition", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("EditionDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("ReferenceTokens", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIdentifier_type)), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Source", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Edition", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("EditionDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("ReferenceTokens", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIdentifier_type)), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcClassification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ReferencedSource", new named_type(IFC4_IfcClassificationReferenceSelect_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Sort", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ReferencedSource", new named_type(IFC4_IfcClassificationReferenceSelect_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Sort", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcClassificationReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcClosedShell_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoilTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoilTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoil_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoilTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoilTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoilType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Red", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("Green", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("Blue", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Red", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("Green", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("Blue", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcColourRgb_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ColourList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcNormalisedRatioMeasure_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ColourList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcNormalisedRatioMeasure_type))), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcColourRgbList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcColourSpecification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcColumnTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcColumnTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcColumn_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcColumnStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcColumnTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcColumnTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcColumnType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCommunicationsApplianceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCommunicationsApplianceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCommunicationsAppliance_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCommunicationsApplianceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCommunicationsApplianceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCommunicationsApplianceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC4_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("UsageName", new named_type(IFC4_IfcIdentifier_type), false)); + attributes.push_back(new attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcComplexProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("TemplateType", new named_type(IFC4_IfcComplexPropertyTemplateTypeEnum_type), true)); - attributes.push_back(new entity::attribute("HasPropertyTemplates", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertyTemplate_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("UsageName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("TemplateType", new named_type(IFC4_IfcComplexPropertyTemplateTypeEnum_type), true)); + attributes.push_back(new attribute("HasPropertyTemplates", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertyTemplate_type)), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcComplexPropertyTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCompositeCurveSegment_type)), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCompositeCurveSegment_type)), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCompositeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCompositeCurveOnSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Transition", new named_type(IFC4_IfcTransitionCode_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("ParentCurve", new named_type(IFC4_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Transition", new named_type(IFC4_IfcTransitionCode_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("ParentCurve", new named_type(IFC4_IfcCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCompositeCurveSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Profiles", new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC4_IfcProfileDef_type)), false)); - attributes.push_back(new entity::attribute("Label", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Profiles", new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC4_IfcProfileDef_type)), false)); + attributes.push_back(new attribute("Label", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCompositeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCompressorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCompressorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCompressor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCompressorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCompressorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCompressorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCondenserTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCondenserTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCondenser_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCondenserTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCondenserTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCondenserType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcConic_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CfsFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFace_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CfsFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFace_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcConnectedFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CurveOnRelatingElement", new named_type(IFC4_IfcCurveOrEdgeCurve_type), false)); - attributes.push_back(new entity::attribute("CurveOnRelatedElement", new named_type(IFC4_IfcCurveOrEdgeCurve_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("CurveOnRelatingElement", new named_type(IFC4_IfcCurveOrEdgeCurve_type), false)); + attributes.push_back(new attribute("CurveOnRelatedElement", new named_type(IFC4_IfcCurveOrEdgeCurve_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionCurveGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcConnectionGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("EccentricityInX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EccentricityInY", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EccentricityInZ", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("EccentricityInX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("EccentricityInY", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("EccentricityInZ", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionPointEccentricity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PointOnRelatingElement", new named_type(IFC4_IfcPointOrVertexPoint_type), false)); - attributes.push_back(new entity::attribute("PointOnRelatedElement", new named_type(IFC4_IfcPointOrVertexPoint_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PointOnRelatingElement", new named_type(IFC4_IfcPointOrVertexPoint_type), false)); + attributes.push_back(new attribute("PointOnRelatedElement", new named_type(IFC4_IfcPointOrVertexPoint_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionPointGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SurfaceOnRelatingElement", new named_type(IFC4_IfcSurfaceOrFaceSurface_type), false)); - attributes.push_back(new entity::attribute("SurfaceOnRelatedElement", new named_type(IFC4_IfcSurfaceOrFaceSurface_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SurfaceOnRelatingElement", new named_type(IFC4_IfcSurfaceOrFaceSurface_type), false)); + attributes.push_back(new attribute("SurfaceOnRelatedElement", new named_type(IFC4_IfcSurfaceOrFaceSurface_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionSurfaceGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VolumeOnRelatingElement", new named_type(IFC4_IfcSolidOrShell_type), false)); - attributes.push_back(new entity::attribute("VolumeOnRelatedElement", new named_type(IFC4_IfcSolidOrShell_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VolumeOnRelatingElement", new named_type(IFC4_IfcSolidOrShell_type), false)); + attributes.push_back(new attribute("VolumeOnRelatedElement", new named_type(IFC4_IfcSolidOrShell_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionVolumeGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ConstraintGrade", new named_type(IFC4_IfcConstraintEnum_type), false)); - attributes.push_back(new entity::attribute("ConstraintSource", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CreatingActor", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("CreationTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("UserDefinedGrade", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ConstraintGrade", new named_type(IFC4_IfcConstraintEnum_type), false)); + attributes.push_back(new attribute("ConstraintSource", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("CreatingActor", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("CreationTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("UserDefinedGrade", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstraint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionEquipmentResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionEquipmentResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionEquipmentResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionEquipmentResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionEquipmentResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionEquipmentResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionMaterialResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionMaterialResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionMaterialResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionMaterialResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionMaterialResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionMaterialResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionProductResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionProductResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionProductResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionProductResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionProductResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionProductResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Usage", new named_type(IFC4_IfcResourceTime_type), true)); - attributes.push_back(new entity::attribute("BaseCosts", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); - attributes.push_back(new entity::attribute("BaseQuantity", new named_type(IFC4_IfcPhysicalQuantity_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Usage", new named_type(IFC4_IfcResourceTime_type), true)); + attributes.push_back(new attribute("BaseCosts", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); + attributes.push_back(new attribute("BaseQuantity", new named_type(IFC4_IfcPhysicalQuantity_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BaseCosts", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); - attributes.push_back(new entity::attribute("BaseQuantity", new named_type(IFC4_IfcPhysicalQuantity_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BaseCosts", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); + attributes.push_back(new attribute("BaseQuantity", new named_type(IFC4_IfcPhysicalQuantity_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ObjectType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Phase", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RepresentationContexts", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcRepresentationContext_type)), true)); - attributes.push_back(new entity::attribute("UnitsInContext", new named_type(IFC4_IfcUnitAssignment_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ObjectType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Phase", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("RepresentationContexts", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcRepresentationContext_type)), true)); + attributes.push_back(new attribute("UnitsInContext", new named_type(IFC4_IfcUnitAssignment_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcContextDependentUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcControllerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcControllerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcController_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcControllerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcControllerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcControllerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ConversionFactor", new named_type(IFC4_IfcMeasureWithUnit_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("ConversionFactor", new named_type(IFC4_IfcMeasureWithUnit_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConversionBasedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ConversionOffset", new named_type(IFC4_IfcReal_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ConversionOffset", new named_type(IFC4_IfcReal_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConversionBasedUnitWithOffset_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCooledBeamTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCooledBeamTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCooledBeam_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCooledBeamTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCooledBeamTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCooledBeamType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoolingTowerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoolingTowerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoolingTower_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoolingTowerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoolingTowerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoolingTowerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SourceCRS", new named_type(IFC4_IfcCoordinateReferenceSystemSelect_type), false)); - attributes.push_back(new entity::attribute("TargetCRS", new named_type(IFC4_IfcCoordinateReferenceSystem_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SourceCRS", new named_type(IFC4_IfcCoordinateReferenceSystemSelect_type), false)); + attributes.push_back(new attribute("TargetCRS", new named_type(IFC4_IfcCoordinateReferenceSystem_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCoordinateOperation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("GeodeticDatum", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("VerticalDatum", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("GeodeticDatum", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("VerticalDatum", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoordinateReferenceSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCostItemTypeEnum_type), true)); - attributes.push_back(new entity::attribute("CostValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCostValue_type)), true)); - attributes.push_back(new entity::attribute("CostQuantities", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCostItemTypeEnum_type), true)); + attributes.push_back(new attribute("CostValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCostValue_type)), true)); + attributes.push_back(new attribute("CostQuantities", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCostItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCostScheduleTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("SubmittedOn", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("UpdateDate", new named_type(IFC4_IfcDateTime_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCostScheduleTypeEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("SubmittedOn", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("UpdateDate", new named_type(IFC4_IfcDateTime_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCostSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCostValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoveringTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoveringTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCovering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoveringTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoveringTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoveringType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCrewResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCrewResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCrewResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCrewResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCrewResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCrewResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCsgPrimitive3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TreeRootExpression", new named_type(IFC4_IfcCsgSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TreeRootExpression", new named_type(IFC4_IfcCsgSelect_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCsgSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingMonetaryUnit", new named_type(IFC4_IfcMonetaryUnit_type), false)); - attributes.push_back(new entity::attribute("RelatedMonetaryUnit", new named_type(IFC4_IfcMonetaryUnit_type), false)); - attributes.push_back(new entity::attribute("ExchangeRate", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("RateDateTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("RateSource", new named_type(IFC4_IfcLibraryInformation_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingMonetaryUnit", new named_type(IFC4_IfcMonetaryUnit_type), false)); + attributes.push_back(new attribute("RelatedMonetaryUnit", new named_type(IFC4_IfcMonetaryUnit_type), false)); + attributes.push_back(new attribute("ExchangeRate", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); + attributes.push_back(new attribute("RateDateTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("RateSource", new named_type(IFC4_IfcLibraryInformation_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurrencyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCurtainWallTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCurtainWallTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurtainWall_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCurtainWallTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCurtainWallTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurtainWallType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcPlane_type), false)); - attributes.push_back(new entity::attribute("OuterBoundary", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4_IfcCurve_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcPlane_type), false)); + attributes.push_back(new attribute("OuterBoundary", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4_IfcCurve_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveBoundedPlane_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("Boundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcBoundaryCurve_type)), false)); - attributes.push_back(new entity::attribute("ImplicitOuter", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("Boundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcBoundaryCurve_type)), false)); + attributes.push_back(new attribute("ImplicitOuter", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveBoundedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("CurveFont", new named_type(IFC4_IfcCurveFontOrScaledCurveFontSelect_type), true)); - attributes.push_back(new entity::attribute("CurveWidth", new named_type(IFC4_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("CurveColour", new named_type(IFC4_IfcColour_type), true)); - attributes.push_back(new entity::attribute("ModelOrDraughting", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("CurveFont", new named_type(IFC4_IfcCurveFontOrScaledCurveFontSelect_type), true)); + attributes.push_back(new attribute("CurveWidth", new named_type(IFC4_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("CurveColour", new named_type(IFC4_IfcColour_type), true)); + attributes.push_back(new attribute("ModelOrDraughting", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PatternList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCurveStyleFontPattern_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("PatternList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCurveStyleFontPattern_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveStyleFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CurveFont", new named_type(IFC4_IfcCurveStyleFontSelect_type), false)); - attributes.push_back(new entity::attribute("CurveFontScaling", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("CurveFont", new named_type(IFC4_IfcCurveStyleFontSelect_type), false)); + attributes.push_back(new attribute("CurveFontScaling", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveStyleFontAndScaling_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VisibleSegmentLength", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InvisibleSegmentLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VisibleSegmentLength", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("InvisibleSegmentLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveStyleFontPattern_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCylindricalSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDamperTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDamperTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDamper_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDamperTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDamperTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDamperType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ParentProfile", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Operator", new named_type(IFC4_IfcCartesianTransformationOperator2D_type), false)); - attributes.push_back(new entity::attribute("Label", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ParentProfile", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Operator", new named_type(IFC4_IfcCartesianTransformationOperator2D_type), false)); + attributes.push_back(new attribute("Label", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDerivedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDerivedUnitElement_type)), false)); - attributes.push_back(new entity::attribute("UnitType", new named_type(IFC4_IfcDerivedUnitEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDerivedUnitElement_type)), false)); + attributes.push_back(new attribute("UnitType", new named_type(IFC4_IfcDerivedUnitEnum_type), false)); + attributes.push_back(new attribute("UserDefinedType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDerivedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcNamedUnit_type), false)); - attributes.push_back(new entity::attribute("Exponent", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcNamedUnit_type), false)); + attributes.push_back(new attribute("Exponent", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcDerivedUnitElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("LengthExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("MassExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("TimeExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ElectricCurrentExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ThermodynamicTemperatureExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("AmountOfSubstanceExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("LuminousIntensityExponent", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("LengthExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("MassExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("TimeExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ElectricCurrentExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ThermodynamicTemperatureExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("AmountOfSubstanceExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("LuminousIntensityExponent", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDimensionalExponents_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("DirectionRatios", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcReal_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("DirectionRatios", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcReal_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcDirection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDiscreteAccessoryTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDiscreteAccessoryTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDiscreteAccessory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDiscreteAccessoryTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDiscreteAccessoryTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDiscreteAccessoryType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDistributionChamberElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDistributionChamberElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionChamberElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDistributionChamberElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDistributionChamberElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionChamberElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionCircuit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionControlElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionControlElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionFlowElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionFlowElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("FlowDirection", new named_type(IFC4_IfcFlowDirectionEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDistributionPortTypeEnum_type), true)); - attributes.push_back(new entity::attribute("SystemType", new named_type(IFC4_IfcDistributionSystemEnum_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("FlowDirection", new named_type(IFC4_IfcFlowDirectionEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDistributionPortTypeEnum_type), true)); + attributes.push_back(new attribute("SystemType", new named_type(IFC4_IfcDistributionSystemEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionPort_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDistributionSystemEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDistributionSystemEnum_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(17); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("IntendedUse", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Scope", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Revision", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DocumentOwner", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("Editors", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcActorSelect_type)), true)); - attributes.push_back(new entity::attribute("CreationTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("LastRevisionTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ElectronicFormat", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("ValidFrom", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("ValidUntil", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("Confidentiality", new named_type(IFC4_IfcDocumentConfidentialityEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcDocumentStatusEnum_type), true)); + std::vector attributes; attributes.reserve(17); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("IntendedUse", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Scope", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Revision", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("DocumentOwner", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("Editors", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcActorSelect_type)), true)); + attributes.push_back(new attribute("CreationTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("LastRevisionTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ElectronicFormat", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("ValidFrom", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("ValidUntil", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("Confidentiality", new named_type(IFC4_IfcDocumentConfidentialityEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcDocumentStatusEnum_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDocumentInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingDocument", new named_type(IFC4_IfcDocumentInformation_type), false)); - attributes.push_back(new entity::attribute("RelatedDocuments", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDocumentInformation_type)), false)); - attributes.push_back(new entity::attribute("RelationshipType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingDocument", new named_type(IFC4_IfcDocumentInformation_type), false)); + attributes.push_back(new attribute("RelatedDocuments", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDocumentInformation_type)), false)); + attributes.push_back(new attribute("RelationshipType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDocumentInformationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ReferencedDocument", new named_type(IFC4_IfcDocumentInformation_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ReferencedDocument", new named_type(IFC4_IfcDocumentInformation_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDocumentReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDoorTypeEnum_type), true)); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcDoorTypeOperationEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedOperationType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDoorTypeEnum_type), true)); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcDoorTypeOperationEnum_type), true)); + attributes.push_back(new attribute("UserDefinedOperationType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(13); - attributes.push_back(new entity::attribute("LiningDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CasingThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CasingDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); - attributes.push_back(new entity::attribute("LiningToPanelOffsetX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningToPanelOffsetY", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(13); + attributes.push_back(new attribute("LiningDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("CasingThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CasingDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + attributes.push_back(new attribute("LiningToPanelOffsetX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningToPanelOffsetY", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorLiningProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PanelDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PanelOperation", new named_type(IFC4_IfcDoorPanelOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelWidth", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC4_IfcDoorPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PanelDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PanelOperation", new named_type(IFC4_IfcDoorPanelOperationEnum_type), false)); + attributes.push_back(new attribute("PanelWidth", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC4_IfcDoorPanelPositionEnum_type), false)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorPanelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcDoorStyleOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC4_IfcDoorStyleConstructionEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Sizeable", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcDoorStyleOperationEnum_type), false)); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC4_IfcDoorStyleConstructionEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Sizeable", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDoorTypeEnum_type), false)); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcDoorTypeOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("UserDefinedOperationType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDoorTypeEnum_type), false)); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcDoorTypeOperationEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("UserDefinedOperationType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcDraughtingPreDefinedColour_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcDraughtingPreDefinedCurveFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctFittingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctFittingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctSegmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctSegmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctSilencerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctSilencerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctSilencer_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctSilencerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctSilencerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctSilencerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeStart", new named_type(IFC4_IfcVertex_type), false)); - attributes.push_back(new entity::attribute("EdgeEnd", new named_type(IFC4_IfcVertex_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeStart", new named_type(IFC4_IfcVertex_type), false)); + attributes.push_back(new attribute("EdgeEnd", new named_type(IFC4_IfcVertex_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcEdge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeGeometry", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeGeometry", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEdgeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcOrientedEdge_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcOrientedEdge_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcEdgeLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricApplianceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricApplianceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricAppliance_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricApplianceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricApplianceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricApplianceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricDistributionBoardTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricDistributionBoardTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricDistributionBoard_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricDistributionBoardTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricDistributionBoardTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricDistributionBoardType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricFlowStorageDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricFlowStorageDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricGeneratorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricGeneratorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricGenerator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricGeneratorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricGeneratorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricGeneratorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricMotorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricMotorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricMotor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricMotorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricMotorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricMotorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricTimeControlTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricTimeControlTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricTimeControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricTimeControlTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricTimeControlTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricTimeControlType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Tag", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AssemblyPlace", new named_type(IFC4_IfcAssemblyPlaceEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElementAssemblyTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AssemblyPlace", new named_type(IFC4_IfcAssemblyPlaceEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElementAssemblyTypeEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementAssembly_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElementAssemblyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElementAssemblyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementAssemblyType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementComponent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementComponentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MethodOfMeasurement", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Quantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MethodOfMeasurement", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Quantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ElementType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ElementType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcElementarySurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SemiAxis1", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SemiAxis2", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SemiAxis1", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("SemiAxis2", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEllipse_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SemiAxis1", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SemiAxis2", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SemiAxis1", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("SemiAxis2", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEllipseProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEnergyConversionDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEnergyConversionDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEngineTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEngineTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEngine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEngineTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEngineTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEngineType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEvaporativeCoolerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEvaporativeCoolerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvaporativeCooler_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEvaporativeCoolerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEvaporativeCoolerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvaporativeCoolerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEvaporatorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEvaporatorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvaporator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEvaporatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEvaporatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvaporatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEventTypeEnum_type), true)); - attributes.push_back(new entity::attribute("EventTriggerType", new named_type(IFC4_IfcEventTriggerTypeEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedEventTriggerType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("EventOccurenceTime", new named_type(IFC4_IfcEventTime_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEventTypeEnum_type), true)); + attributes.push_back(new attribute("EventTriggerType", new named_type(IFC4_IfcEventTriggerTypeEnum_type), true)); + attributes.push_back(new attribute("UserDefinedEventTriggerType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("EventOccurenceTime", new named_type(IFC4_IfcEventTime_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ActualDate", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("EarlyDate", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("LateDate", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ScheduleDate", new named_type(IFC4_IfcDateTime_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ActualDate", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("EarlyDate", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("LateDate", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ScheduleDate", new named_type(IFC4_IfcDateTime_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEventTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEventTypeEnum_type), false)); - attributes.push_back(new entity::attribute("EventTriggerType", new named_type(IFC4_IfcEventTriggerTypeEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedEventTriggerType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEventTypeEnum_type), false)); + attributes.push_back(new attribute("EventTriggerType", new named_type(IFC4_IfcEventTriggerTypeEnum_type), false)); + attributes.push_back(new attribute("UserDefinedEventTriggerType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEventType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Properties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Properties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExtendedProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcExternalInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternalReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingReference", new named_type(IFC4_IfcExternalReference_type), false)); - attributes.push_back(new entity::attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingReference", new named_type(IFC4_IfcExternalReference_type), false)); + attributes.push_back(new attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternalReferenceRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcExternalSpatialElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcExternalSpatialElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternalSpatialElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternalSpatialStructureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternallyDefinedHatchStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternallyDefinedSurfaceStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternallyDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ExtrudedDirection", new named_type(IFC4_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ExtrudedDirection", new named_type(IFC4_IfcDirection_type), false)); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExtrudedAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EndSweptArea", new named_type(IFC4_IfcProfileDef_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EndSweptArea", new named_type(IFC4_IfcProfileDef_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExtrudedAreaSolidTapered_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Bounds", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFaceBound_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Bounds", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFaceBound_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcFace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FbsmFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcConnectedFaceSet_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FbsmFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcConnectedFaceSet_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcFaceBasedSurfaceModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Bound", new named_type(IFC4_IfcLoop_type), false)); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Bound", new named_type(IFC4_IfcLoop_type), false)); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcFaceBound_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcFaceOuterBound_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("FaceSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("FaceSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFaceSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcFacetedBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClosedShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClosedShell_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcFacetedBrepWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TensionFailureX", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionFailureY", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionFailureZ", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureX", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureY", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureZ", new named_type(IFC4_IfcForceMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TensionFailureX", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("TensionFailureY", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("TensionFailureZ", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureX", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureY", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureZ", new named_type(IFC4_IfcForceMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFailureConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFanTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFanTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFan_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFanTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFanTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFanType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFastenerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFastenerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFastener_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFastenerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFastenerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFastenerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFeatureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFeatureElementAddition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFeatureElementSubtraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("FillStyles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFillStyleSelect_type)), false)); - attributes.push_back(new entity::attribute("ModelorDraughting", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("FillStyles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFillStyleSelect_type)), false)); + attributes.push_back(new attribute("ModelorDraughting", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFillAreaStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("HatchLineAppearance", new named_type(IFC4_IfcCurveStyle_type), false)); - attributes.push_back(new entity::attribute("StartOfNextHatchLine", new named_type(IFC4_IfcHatchLineDistanceSelect_type), false)); - attributes.push_back(new entity::attribute("PointOfReferenceHatchLine", new named_type(IFC4_IfcCartesianPoint_type), true)); - attributes.push_back(new entity::attribute("PatternStart", new named_type(IFC4_IfcCartesianPoint_type), true)); - attributes.push_back(new entity::attribute("HatchLineAngle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("HatchLineAppearance", new named_type(IFC4_IfcCurveStyle_type), false)); + attributes.push_back(new attribute("StartOfNextHatchLine", new named_type(IFC4_IfcHatchLineDistanceSelect_type), false)); + attributes.push_back(new attribute("PointOfReferenceHatchLine", new named_type(IFC4_IfcCartesianPoint_type), true)); + attributes.push_back(new attribute("PatternStart", new named_type(IFC4_IfcCartesianPoint_type), true)); + attributes.push_back(new attribute("HatchLineAngle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFillAreaStyleHatching_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TilingPattern", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcVector_type)), false)); - attributes.push_back(new entity::attribute("Tiles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStyledItem_type)), false)); - attributes.push_back(new entity::attribute("TilingScale", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TilingPattern", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcVector_type)), false)); + attributes.push_back(new attribute("Tiles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStyledItem_type)), false)); + attributes.push_back(new attribute("TilingScale", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFillAreaStyleTiles_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFilterTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFilterTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFilter_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFilterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFilterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFilterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFireSuppressionTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFireSuppressionTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFireSuppressionTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFireSuppressionTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFireSuppressionTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFireSuppressionTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("FixedReference", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("FixedReference", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFixedReferenceSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowController_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowControllerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFlowInstrumentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFlowInstrumentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowInstrument_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFlowInstrumentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFlowInstrumentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowInstrumentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFlowMeterTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFlowMeterTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowMeter_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFlowMeterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFlowMeterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowMeterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowMovingDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowMovingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowStorageDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowStorageDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowTreatmentDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowTreatmentDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFootingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFootingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFooting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFootingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFootingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFootingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFurnishingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFurnishingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFurnitureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFurnitureTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFurniture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AssemblyPlace", new named_type(IFC4_IfcAssemblyPlaceEnum_type), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFurnitureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AssemblyPlace", new named_type(IFC4_IfcAssemblyPlaceEnum_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFurnitureTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFurnitureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcGeographicElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcGeographicElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGeographicElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcGeographicElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcGeographicElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGeographicElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcGeometricCurveSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("CoordinateSpaceDimension", new named_type(IFC4_IfcDimensionCount_type), false)); - attributes.push_back(new entity::attribute("Precision", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("WorldCoordinateSystem", new named_type(IFC4_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("TrueNorth", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("CoordinateSpaceDimension", new named_type(IFC4_IfcDimensionCount_type), false)); + attributes.push_back(new attribute("Precision", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("WorldCoordinateSystem", new named_type(IFC4_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("TrueNorth", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGeometricRepresentationContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcGeometricRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ParentContext", new named_type(IFC4_IfcGeometricRepresentationContext_type), false)); - attributes.push_back(new entity::attribute("TargetScale", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("TargetView", new named_type(IFC4_IfcGeometricProjectionEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedTargetView", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ParentContext", new named_type(IFC4_IfcGeometricRepresentationContext_type), false)); + attributes.push_back(new attribute("TargetScale", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("TargetView", new named_type(IFC4_IfcGeometricProjectionEnum_type), false)); + attributes.push_back(new attribute("UserDefinedTargetView", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(true); derived.push_back(true); derived.push_back(true); derived.push_back(true); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGeometricRepresentationSubContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcGeometricSetSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcGeometricSetSelect_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcGeometricSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("UAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("VAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("WAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcGridTypeEnum_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("UAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("VAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("WAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcGridTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGrid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("AxisTag", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AxisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("AxisTag", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("AxisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGridAxis_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PlacementLocation", new named_type(IFC4_IfcVirtualGridIntersection_type), false)); - attributes.push_back(new entity::attribute("PlacementRefDirection", new named_type(IFC4_IfcGridPlacementDirectionSelect_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PlacementLocation", new named_type(IFC4_IfcVirtualGridIntersection_type), false)); + attributes.push_back(new attribute("PlacementRefDirection", new named_type(IFC4_IfcGridPlacementDirectionSelect_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcGridPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BaseSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("AgreementFlag", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BaseSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("AgreementFlag", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcHalfSpaceSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcHeatExchangerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcHeatExchangerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcHeatExchanger_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcHeatExchangerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcHeatExchangerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcHeatExchangerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcHumidifierTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcHumidifierTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcHumidifier_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcHumidifierTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcHumidifierTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcHumidifierType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("OverallDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("OverallDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("URLReference", new named_type(IFC4_IfcURIReference_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("URLReference", new named_type(IFC4_IfcURIReference_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcImageTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("MappedTo", new named_type(IFC4_IfcTessellatedFaceSet_type), false)); - attributes.push_back(new entity::attribute("Opacity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Colours", new named_type(IFC4_IfcColourRgbList_type), false)); - attributes.push_back(new entity::attribute("ColourIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("MappedTo", new named_type(IFC4_IfcTessellatedFaceSet_type), false)); + attributes.push_back(new attribute("Opacity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("Colours", new named_type(IFC4_IfcColourRgbList_type), false)); + attributes.push_back(new attribute("ColourIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedColourMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Points", new named_type(IFC4_IfcCartesianPointList_type), false)); - attributes.push_back(new entity::attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSegmentIndexSelect_type)), true)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Points", new named_type(IFC4_IfcCartesianPointList_type), false)); + attributes.push_back(new attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSegmentIndexSelect_type)), true)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedPolyCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappedTo", new named_type(IFC4_IfcTessellatedFaceSet_type), false)); - attributes.push_back(new entity::attribute("TexCoords", new named_type(IFC4_IfcTextureVertexList_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CoordIndex", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcPositiveInteger_type)), false)); + std::vector derived; derived.reserve(1); + derived.push_back(false); + IFC4_IfcIndexedPolygonalFace_type->set_attributes(attributes, derived); + } + { + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("InnerCoordIndices", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcPositiveInteger_type))), false)); + std::vector derived; derived.reserve(2); + derived.push_back(false); derived.push_back(false); + IFC4_IfcIndexedPolygonalFaceWithVoids_type->set_attributes(attributes, derived); + } + { + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappedTo", new named_type(IFC4_IfcTessellatedFaceSet_type), false)); + attributes.push_back(new attribute("TexCoords", new named_type(IFC4_IfcTextureVertexList_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TexCoordIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TexCoordIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedTriangleTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcInterceptorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcInterceptorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcInterceptor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcInterceptorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcInterceptorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcInterceptorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcInventoryTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Jurisdiction", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("ResponsiblePersons", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPerson_type)), true)); - attributes.push_back(new entity::attribute("LastUpdateDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("CurrentValue", new named_type(IFC4_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("OriginalValue", new named_type(IFC4_IfcCostValue_type), true)); + std::vector attributes; attributes.reserve(0); + std::vector derived; derived.reserve(3); + derived.push_back(false); derived.push_back(false); derived.push_back(false); + IFC4_IfcIntersectionCurve_type->set_attributes(attributes, derived); + } + { + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcInventoryTypeEnum_type), true)); + attributes.push_back(new attribute("Jurisdiction", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("ResponsiblePersons", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPerson_type)), true)); + attributes.push_back(new attribute("LastUpdateDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("CurrentValue", new named_type(IFC4_IfcCostValue_type), true)); + attributes.push_back(new attribute("OriginalValue", new named_type(IFC4_IfcCostValue_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcInventory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIrregularTimeSeriesValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIrregularTimeSeriesValue_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIrregularTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeStamp", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeStamp", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcIrregularTimeSeriesValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcJunctionBoxTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcJunctionBoxTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcJunctionBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcJunctionBoxTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcJunctionBoxTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcJunctionBoxType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Width", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LegSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Width", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("LegSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLaborResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLaborResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLaborResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLaborResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLaborResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLaborResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LagValue", new named_type(IFC4_IfcTimeOrRatioSelect_type), false)); - attributes.push_back(new entity::attribute("DurationType", new named_type(IFC4_IfcTaskDurationEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LagValue", new named_type(IFC4_IfcTimeOrRatioSelect_type), false)); + attributes.push_back(new attribute("DurationType", new named_type(IFC4_IfcTaskDurationEnum_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLagTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLampTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLampTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLamp_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLampTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLampTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLampType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Version", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Publisher", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("VersionDate", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Version", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Publisher", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("VersionDate", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLibraryInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Language", new named_type(IFC4_IfcLanguageId_type), true)); - attributes.push_back(new entity::attribute("ReferencedLibrary", new named_type(IFC4_IfcLibraryInformation_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Language", new named_type(IFC4_IfcLanguageId_type), true)); + attributes.push_back(new attribute("ReferencedLibrary", new named_type(IFC4_IfcLibraryInformation_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLibraryReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MainPlaneAngle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); - attributes.push_back(new entity::attribute("SecondaryPlaneAngle", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPlaneAngleMeasure_type)), false)); - attributes.push_back(new entity::attribute("LuminousIntensity", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLuminousIntensityDistributionMeasure_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MainPlaneAngle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); + attributes.push_back(new attribute("SecondaryPlaneAngle", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPlaneAngleMeasure_type)), false)); + attributes.push_back(new attribute("LuminousIntensity", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLuminousIntensityDistributionMeasure_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightDistributionData_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLightFixtureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLightFixtureTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightFixture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLightFixtureTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLightFixtureTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightFixtureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LightDistributionCurve", new named_type(IFC4_IfcLightDistributionCurveEnum_type), false)); - attributes.push_back(new entity::attribute("DistributionData", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLightDistributionData_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LightDistributionCurve", new named_type(IFC4_IfcLightDistributionCurveEnum_type), false)); + attributes.push_back(new attribute("DistributionData", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLightDistributionData_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcLightIntensityDistribution_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LightColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("AmbientIntensity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Intensity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LightColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("AmbientIntensity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("Intensity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourceAmbient_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourceDirectional_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); - attributes.push_back(new entity::attribute("ColourAppearance", new named_type(IFC4_IfcColourRgb_type), true)); - attributes.push_back(new entity::attribute("ColourTemperature", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), false)); - attributes.push_back(new entity::attribute("LuminousFlux", new named_type(IFC4_IfcLuminousFluxMeasure_type), false)); - attributes.push_back(new entity::attribute("LightEmissionSource", new named_type(IFC4_IfcLightEmissionSourceEnum_type), false)); - attributes.push_back(new entity::attribute("LightDistributionDataSource", new named_type(IFC4_IfcLightDistributionDataSourceSelect_type), false)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); + attributes.push_back(new attribute("ColourAppearance", new named_type(IFC4_IfcColourRgb_type), true)); + attributes.push_back(new attribute("ColourTemperature", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), false)); + attributes.push_back(new attribute("LuminousFlux", new named_type(IFC4_IfcLuminousFluxMeasure_type), false)); + attributes.push_back(new attribute("LightEmissionSource", new named_type(IFC4_IfcLightEmissionSourceEnum_type), false)); + attributes.push_back(new attribute("LightDistributionDataSource", new named_type(IFC4_IfcLightDistributionDataSourceSelect_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourceGoniometric_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ConstantAttenuation", new named_type(IFC4_IfcReal_type), false)); - attributes.push_back(new entity::attribute("DistanceAttenuation", new named_type(IFC4_IfcReal_type), false)); - attributes.push_back(new entity::attribute("QuadricAttenuation", new named_type(IFC4_IfcReal_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ConstantAttenuation", new named_type(IFC4_IfcReal_type), false)); + attributes.push_back(new attribute("DistanceAttenuation", new named_type(IFC4_IfcReal_type), false)); + attributes.push_back(new attribute("QuadricAttenuation", new named_type(IFC4_IfcReal_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourcePositional_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("ConcentrationExponent", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("SpreadAngle", new named_type(IFC4_IfcPositivePlaneAngleMeasure_type), false)); - attributes.push_back(new entity::attribute("BeamWidthAngle", new named_type(IFC4_IfcPositivePlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); + attributes.push_back(new attribute("ConcentrationExponent", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("SpreadAngle", new named_type(IFC4_IfcPositivePlaneAngleMeasure_type), false)); + attributes.push_back(new attribute("BeamWidthAngle", new named_type(IFC4_IfcPositivePlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourceSpot_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Pnt", new named_type(IFC4_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Dir", new named_type(IFC4_IfcVector_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Pnt", new named_type(IFC4_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Dir", new named_type(IFC4_IfcVector_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcLine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PlacementRelTo", new named_type(IFC4_IfcObjectPlacement_type), true)); - attributes.push_back(new entity::attribute("RelativePlacement", new named_type(IFC4_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PlacementRelTo", new named_type(IFC4_IfcObjectPlacement_type), true)); + attributes.push_back(new attribute("RelativePlacement", new named_type(IFC4_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcLocalPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Outer", new named_type(IFC4_IfcClosedShell_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Outer", new named_type(IFC4_IfcClosedShell_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcManifoldSolidBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Eastings", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Northings", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("OrthogonalHeight", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("XAxisAbscissa", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("XAxisOrdinate", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("Scale", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Eastings", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("Northings", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("OrthogonalHeight", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("XAxisAbscissa", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("XAxisOrdinate", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("Scale", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMapConversion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappingSource", new named_type(IFC4_IfcRepresentationMap_type), false)); - attributes.push_back(new entity::attribute("MappingTarget", new named_type(IFC4_IfcCartesianTransformationOperator_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappingSource", new named_type(IFC4_IfcRepresentationMap_type), false)); + attributes.push_back(new attribute("MappingTarget", new named_type(IFC4_IfcCartesianTransformationOperator_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcMappedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterial_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MaterialClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClassificationSelect_type)), false)); - attributes.push_back(new entity::attribute("ClassifiedMaterial", new named_type(IFC4_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MaterialClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClassificationSelect_type)), false)); + attributes.push_back(new attribute("ClassifiedMaterial", new named_type(IFC4_IfcMaterial_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialClassificationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Material", new named_type(IFC4_IfcMaterial_type), false)); - attributes.push_back(new entity::attribute("Fraction", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Material", new named_type(IFC4_IfcMaterial_type), false)); + attributes.push_back(new attribute("Fraction", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialConstituent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("MaterialConstituents", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMaterialConstituent_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("MaterialConstituents", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMaterialConstituent_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialConstituentSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcMaterialDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RepresentedMaterial", new named_type(IFC4_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RepresentedMaterial", new named_type(IFC4_IfcMaterial_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialDefinitionRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Material", new named_type(IFC4_IfcMaterial_type), true)); - attributes.push_back(new entity::attribute("LayerThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("IsVentilated", new named_type(IFC4_IfcLogical_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Material", new named_type(IFC4_IfcMaterial_type), true)); + attributes.push_back(new attribute("LayerThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), false)); + attributes.push_back(new attribute("IsVentilated", new named_type(IFC4_IfcLogical_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialLayer_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MaterialLayers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterialLayer_type)), false)); - attributes.push_back(new entity::attribute("LayerSetName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MaterialLayers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterialLayer_type)), false)); + attributes.push_back(new attribute("LayerSetName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialLayerSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ForLayerSet", new named_type(IFC4_IfcMaterialLayerSet_type), false)); - attributes.push_back(new entity::attribute("LayerSetDirection", new named_type(IFC4_IfcLayerSetDirectionEnum_type), false)); - attributes.push_back(new entity::attribute("DirectionSense", new named_type(IFC4_IfcDirectionSenseEnum_type), false)); - attributes.push_back(new entity::attribute("OffsetFromReferenceLine", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ReferenceExtent", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ForLayerSet", new named_type(IFC4_IfcMaterialLayerSet_type), false)); + attributes.push_back(new attribute("LayerSetDirection", new named_type(IFC4_IfcLayerSetDirectionEnum_type), false)); + attributes.push_back(new attribute("DirectionSense", new named_type(IFC4_IfcDirectionSenseEnum_type), false)); + attributes.push_back(new attribute("OffsetFromReferenceLine", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("ReferenceExtent", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialLayerSetUsage_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OffsetDirection", new named_type(IFC4_IfcLayerSetDirectionEnum_type), false)); - attributes.push_back(new entity::attribute("OffsetValues", new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OffsetDirection", new named_type(IFC4_IfcLayerSetDirectionEnum_type), false)); + attributes.push_back(new attribute("OffsetValues", new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialLayerWithOffsets_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Materials", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterial_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Materials", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterial_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcMaterialList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Material", new named_type(IFC4_IfcMaterial_type), true)); - attributes.push_back(new entity::attribute("Profile", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Material", new named_type(IFC4_IfcMaterial_type), true)); + attributes.push_back(new attribute("Profile", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfile_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("MaterialProfiles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterialProfile_type)), false)); - attributes.push_back(new entity::attribute("CompositeProfile", new named_type(IFC4_IfcCompositeProfileDef_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("MaterialProfiles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterialProfile_type)), false)); + attributes.push_back(new attribute("CompositeProfile", new named_type(IFC4_IfcCompositeProfileDef_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfileSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ForProfileSet", new named_type(IFC4_IfcMaterialProfileSet_type), false)); - attributes.push_back(new entity::attribute("CardinalPoint", new named_type(IFC4_IfcCardinalPointReference_type), true)); - attributes.push_back(new entity::attribute("ReferenceExtent", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ForProfileSet", new named_type(IFC4_IfcMaterialProfileSet_type), false)); + attributes.push_back(new attribute("CardinalPoint", new named_type(IFC4_IfcCardinalPointReference_type), true)); + attributes.push_back(new attribute("ReferenceExtent", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfileSetUsage_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ForProfileEndSet", new named_type(IFC4_IfcMaterialProfileSet_type), false)); - attributes.push_back(new entity::attribute("CardinalEndPoint", new named_type(IFC4_IfcCardinalPointReference_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ForProfileEndSet", new named_type(IFC4_IfcMaterialProfileSet_type), false)); + attributes.push_back(new attribute("CardinalEndPoint", new named_type(IFC4_IfcCardinalPointReference_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfileSetUsageTapering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("OffsetValues", new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("OffsetValues", new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfileWithOffsets_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Material", new named_type(IFC4_IfcMaterialDefinition_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Material", new named_type(IFC4_IfcMaterialDefinition_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingMaterial", new named_type(IFC4_IfcMaterial_type), false)); - attributes.push_back(new entity::attribute("RelatedMaterials", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMaterial_type)), false)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingMaterial", new named_type(IFC4_IfcMaterial_type), false)); + attributes.push_back(new attribute("RelatedMaterials", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMaterial_type)), false)); + attributes.push_back(new attribute("Expression", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcMaterialUsageDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ValueComponent", new named_type(IFC4_IfcValue_type), false)); - attributes.push_back(new entity::attribute("UnitComponent", new named_type(IFC4_IfcUnit_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ValueComponent", new named_type(IFC4_IfcValue_type), false)); + attributes.push_back(new attribute("UnitComponent", new named_type(IFC4_IfcUnit_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcMeasureWithUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMechanicalFastenerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMechanicalFastenerTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMechanicalFastener_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMechanicalFastenerTypeEnum_type), false)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMechanicalFastenerTypeEnum_type), false)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMechanicalFastenerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMedicalDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMedicalDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMedicalDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMedicalDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMedicalDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMedicalDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMemberTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMemberTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMemberStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMemberTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMemberTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMemberType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Benchmark", new named_type(IFC4_IfcBenchmarkEnum_type), false)); - attributes.push_back(new entity::attribute("ValueSource", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DataValue", new named_type(IFC4_IfcMetricValueSelect_type), true)); - attributes.push_back(new entity::attribute("ReferencePath", new named_type(IFC4_IfcReference_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Benchmark", new named_type(IFC4_IfcBenchmarkEnum_type), false)); + attributes.push_back(new attribute("ValueSource", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("DataValue", new named_type(IFC4_IfcMetricValueSelect_type), true)); + attributes.push_back(new attribute("ReferencePath", new named_type(IFC4_IfcReference_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMetric_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(true); derived.push_back(false); IFC4_IfcMirroredProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Currency", new named_type(IFC4_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Currency", new named_type(IFC4_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcMonetaryUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMotorConnectionTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMotorConnectionTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMotorConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMotorConnectionTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMotorConnectionTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMotorConnectionType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Dimensions", new named_type(IFC4_IfcDimensionalExponents_type), false)); - attributes.push_back(new entity::attribute("UnitType", new named_type(IFC4_IfcUnitEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Dimensions", new named_type(IFC4_IfcDimensionalExponents_type), false)); + attributes.push_back(new attribute("UnitType", new named_type(IFC4_IfcUnitEnum_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcNamedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ObjectType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ObjectType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcObjectDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcObjectPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BenchmarkValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcConstraint_type)), true)); - attributes.push_back(new entity::attribute("LogicalAggregator", new named_type(IFC4_IfcLogicalOperatorEnum_type), true)); - attributes.push_back(new entity::attribute("ObjectiveQualifier", new named_type(IFC4_IfcObjectiveEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedQualifier", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BenchmarkValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcConstraint_type)), true)); + attributes.push_back(new attribute("LogicalAggregator", new named_type(IFC4_IfcLogicalOperatorEnum_type), true)); + attributes.push_back(new attribute("ObjectiveQualifier", new named_type(IFC4_IfcObjectiveEnum_type), false)); + attributes.push_back(new attribute("UserDefinedQualifier", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcObjective_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcOccupantTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcOccupantTypeEnum_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOccupant_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Distance", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("Distance", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOffsetCurve2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Distance", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("Distance", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("RefDirection", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOffsetCurve3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcOpenShell_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcOpeningElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcOpeningElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOpeningElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOpeningStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); - attributes.push_back(new entity::attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAddress_type)), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); + attributes.push_back(new attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAddress_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOrganization_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingOrganization", new named_type(IFC4_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("RelatedOrganizations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcOrganization_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingOrganization", new named_type(IFC4_IfcOrganization_type), false)); + attributes.push_back(new attribute("RelatedOrganizations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcOrganization_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOrganizationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeElement", new named_type(IFC4_IfcEdge_type), false)); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeElement", new named_type(IFC4_IfcEdge_type), false)); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(4); derived.push_back(true); derived.push_back(true); derived.push_back(false); derived.push_back(false); IFC4_IfcOrientedEdge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcOuterBoundaryCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcOutletTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcOutletTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOutlet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcOutletTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcOutletTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOutletType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("OwningUser", new named_type(IFC4_IfcPersonAndOrganization_type), false)); - attributes.push_back(new entity::attribute("OwningApplication", new named_type(IFC4_IfcApplication_type), false)); - attributes.push_back(new entity::attribute("State", new named_type(IFC4_IfcStateEnum_type), true)); - attributes.push_back(new entity::attribute("ChangeAction", new named_type(IFC4_IfcChangeActionEnum_type), true)); - attributes.push_back(new entity::attribute("LastModifiedDate", new named_type(IFC4_IfcTimeStamp_type), true)); - attributes.push_back(new entity::attribute("LastModifyingUser", new named_type(IFC4_IfcPersonAndOrganization_type), true)); - attributes.push_back(new entity::attribute("LastModifyingApplication", new named_type(IFC4_IfcApplication_type), true)); - attributes.push_back(new entity::attribute("CreationDate", new named_type(IFC4_IfcTimeStamp_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("OwningUser", new named_type(IFC4_IfcPersonAndOrganization_type), false)); + attributes.push_back(new attribute("OwningApplication", new named_type(IFC4_IfcApplication_type), false)); + attributes.push_back(new attribute("State", new named_type(IFC4_IfcStateEnum_type), true)); + attributes.push_back(new attribute("ChangeAction", new named_type(IFC4_IfcChangeActionEnum_type), true)); + attributes.push_back(new attribute("LastModifiedDate", new named_type(IFC4_IfcTimeStamp_type), true)); + attributes.push_back(new attribute("LastModifyingUser", new named_type(IFC4_IfcPersonAndOrganization_type), true)); + attributes.push_back(new attribute("LastModifyingApplication", new named_type(IFC4_IfcApplication_type), true)); + attributes.push_back(new attribute("CreationDate", new named_type(IFC4_IfcTimeStamp_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOwnerHistory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement2D_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement2D_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcParameterizedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcOrientedEdge_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcOrientedEdge_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPath_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("ReferenceCurve", new named_type(IFC4_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("ReferenceCurve", new named_type(IFC4_IfcCurve_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcPcurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LifeCyclePhase", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPerformanceHistoryTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LifeCyclePhase", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPerformanceHistoryTypeEnum_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPerformanceHistory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcPermeableCoveringOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC4_IfcWindowPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("FrameDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FrameThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcPermeableCoveringOperationEnum_type), false)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC4_IfcWindowPanelPositionEnum_type), false)); + attributes.push_back(new attribute("FrameDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FrameThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPermeableCoveringProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPermitTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPermitTypeEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPermit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("FamilyName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("GivenName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("MiddleNames", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PrefixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("SuffixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); - attributes.push_back(new entity::attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAddress_type)), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("FamilyName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("GivenName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("MiddleNames", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("PrefixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("SuffixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); + attributes.push_back(new attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAddress_type)), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPerson_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ThePerson", new named_type(IFC4_IfcPerson_type), false)); - attributes.push_back(new entity::attribute("TheOrganization", new named_type(IFC4_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ThePerson", new named_type(IFC4_IfcPerson_type), false)); + attributes.push_back(new attribute("TheOrganization", new named_type(IFC4_IfcOrganization_type), false)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPersonAndOrganization_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("HasQuantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), false)); - attributes.push_back(new entity::attribute("Discrimination", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Quality", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Usage", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("HasQuantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), false)); + attributes.push_back(new attribute("Discrimination", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Quality", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Usage", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPhysicalComplexQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcPhysicalQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcNamedUnit_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcNamedUnit_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPhysicalSimpleQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPileTypeEnum_type), true)); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC4_IfcPileConstructionEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPileTypeEnum_type), true)); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC4_IfcPileConstructionEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPile_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPileTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPileTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPileType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPipeFittingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPipeFittingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPipeFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPipeFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPipeFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPipeFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPipeSegmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPipeSegmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPipeSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPipeSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPipeSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPipeSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Width", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("ColourComponents", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("Pixel", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBinary_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Width", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("Height", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("ColourComponents", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("Pixel", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBinary_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPixelTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcCartesianPoint_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcCartesianPoint_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Placement", new named_type(IFC4_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Placement", new named_type(IFC4_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPlanarBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SizeInX", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SizeInY", new named_type(IFC4_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SizeInX", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SizeInY", new named_type(IFC4_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcPlanarExtent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPlane_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPlateTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPlateTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPlate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPlateStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPlateTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPlateTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPlateType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("PointParameter", new named_type(IFC4_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("PointParameter", new named_type(IFC4_IfcParameterValue_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcPointOnCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("PointParameterU", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("PointParameterV", new named_type(IFC4_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("PointParameterU", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("PointParameterV", new named_type(IFC4_IfcParameterValue_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPointOnSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Polygon", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Polygon", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPolyLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); - attributes.push_back(new entity::attribute("PolygonalBoundary", new named_type(IFC4_IfcBoundedCurve_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); + attributes.push_back(new attribute("PolygonalBoundary", new named_type(IFC4_IfcBoundedCurve_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPolygonalBoundedHalfSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Points", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Closed", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("Faces", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIndexedPolygonalFace_type)), false)); + attributes.push_back(new attribute("PnIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), true)); + std::vector derived; derived.reserve(4); + derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); + IFC4_IfcPolygonalFaceSet_type->set_attributes(attributes, derived); + } + { + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Points", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPolyline_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPort_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("InternalLocation", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AddressLines", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PostalBox", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Town", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Region", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PostalCode", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Country", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("InternalLocation", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("AddressLines", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("PostalBox", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Town", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Region", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("PostalCode", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Country", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPostalAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPreDefinedColour_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPreDefinedCurveFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPreDefinedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcPreDefinedProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPreDefinedPropertySet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPreDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcPresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("AssignedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcLayeredItem_type)), false)); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("AssignedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcLayeredItem_type)), false)); + attributes.push_back(new attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPresentationLayerAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("LayerOn", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("LayerFrozen", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("LayerBlocked", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("LayerStyles", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4_IfcPresentationStyle_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("LayerOn", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("LayerFrozen", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("LayerBlocked", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("LayerStyles", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4_IfcPresentationStyle_type)), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPresentationLayerWithStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPresentationStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPresentationStyleSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPresentationStyleSelect_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPresentationStyleAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProcedureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProcedureTypeEnum_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProcedure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProcedureTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProcedureTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProcedureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ObjectPlacement", new named_type(IFC4_IfcObjectPlacement_type), true)); - attributes.push_back(new entity::attribute("Representation", new named_type(IFC4_IfcProductRepresentation_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ObjectPlacement", new named_type(IFC4_IfcObjectPlacement_type), true)); + attributes.push_back(new attribute("Representation", new named_type(IFC4_IfcProductRepresentation_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProductDefinitionShape_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Representations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcRepresentation_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Representations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcRepresentation_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProductRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProfileType", new named_type(IFC4_IfcProfileTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ProfileName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProfileType", new named_type(IFC4_IfcProfileTypeEnum_type), false)); + attributes.push_back(new attribute("ProfileName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ProfileDefinition", new named_type(IFC4_IfcProfileDef_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ProfileDefinition", new named_type(IFC4_IfcProfileDef_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProjectLibrary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProjectOrderTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProjectOrderTypeEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProjectOrder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MapProjection", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("MapZone", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("MapUnit", new named_type(IFC4_IfcNamedUnit_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MapProjection", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("MapZone", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("MapUnit", new named_type(IFC4_IfcNamedUnit_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProjectedCRS_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProjectionElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProjectionElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProjectionElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcPropertyAbstraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("UpperBoundValue", new named_type(IFC4_IfcValue_type), true)); - attributes.push_back(new entity::attribute("LowerBoundValue", new named_type(IFC4_IfcValue_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("SetPointValue", new named_type(IFC4_IfcValue_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("UpperBoundValue", new named_type(IFC4_IfcValue_type), true)); + attributes.push_back(new attribute("LowerBoundValue", new named_type(IFC4_IfcValue_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("SetPointValue", new named_type(IFC4_IfcValue_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyBoundedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("DependingProperty", new named_type(IFC4_IfcProperty_type), false)); - attributes.push_back(new entity::attribute("DependantProperty", new named_type(IFC4_IfcProperty_type), false)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("DependingProperty", new named_type(IFC4_IfcProperty_type), false)); + attributes.push_back(new attribute("DependantProperty", new named_type(IFC4_IfcProperty_type), false)); + attributes.push_back(new attribute("Expression", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyDependencyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("EnumerationReference", new named_type(IFC4_IfcPropertyEnumeration_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("EnumerationReference", new named_type(IFC4_IfcPropertyEnumeration_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyEnumeratedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyEnumeration_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyListValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("PropertyReference", new named_type(IFC4_IfcObjectReferenceSelect_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("UsageName", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("PropertyReference", new named_type(IFC4_IfcObjectReferenceSelect_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyReferenceValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertySet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertySetDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TemplateType", new named_type(IFC4_IfcPropertySetTemplateTypeEnum_type), true)); - attributes.push_back(new entity::attribute("ApplicableEntity", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("HasPropertyTemplates", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertyTemplate_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TemplateType", new named_type(IFC4_IfcPropertySetTemplateTypeEnum_type), true)); + attributes.push_back(new attribute("ApplicableEntity", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("HasPropertyTemplates", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertyTemplate_type)), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertySetTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("NominalValue", new named_type(IFC4_IfcValue_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("NominalValue", new named_type(IFC4_IfcValue_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertySingleValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("DefiningValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("DefinedValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("DefiningUnit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("DefinedUnit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("CurveInterpolation", new named_type(IFC4_IfcCurveInterpolationEnum_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("DefiningValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("DefinedValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("Expression", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("DefiningUnit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("DefinedUnit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("CurveInterpolation", new named_type(IFC4_IfcCurveInterpolationEnum_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyTableValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyTemplateDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProtectiveDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProtectiveDeviceTrippingUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProtectiveDeviceTrippingUnitType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProtectiveDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProxyType", new named_type(IFC4_IfcObjectTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProxyType", new named_type(IFC4_IfcObjectTypeEnum_type), false)); + attributes.push_back(new attribute("Tag", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProxy_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPumpTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPumpTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPump_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPumpTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPumpTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPumpType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AreaValue", new named_type(IFC4_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AreaValue", new named_type(IFC4_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CountValue", new named_type(IFC4_IfcCountMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("CountValue", new named_type(IFC4_IfcCountMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityCount_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LengthValue", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LengthValue", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityLength_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantitySet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeValue", new named_type(IFC4_IfcTimeMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeValue", new named_type(IFC4_IfcTimeMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VolumeValue", new named_type(IFC4_IfcVolumeMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VolumeValue", new named_type(IFC4_IfcVolumeMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityVolume_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("WeightValue", new named_type(IFC4_IfcMassMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("WeightValue", new named_type(IFC4_IfcMassMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityWeight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRailingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRailingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRailing_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRailingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRailingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRailingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRampTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRampTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRamp_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRampFlightTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRampFlightTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRampFlight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRampFlightTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRampFlightTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRampFlightType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRampTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRampTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRampType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcReal_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcReal_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRationalBSplineCurveWithKnots_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcReal_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcReal_type))), false)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRationalBSplineSurfaceWithKnots_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InnerFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OuterFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InnerFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("OuterFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRectangleHollowProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("XDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("XDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRectangleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("XLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("XLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRectangularPyramid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("U1", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("V1", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("U2", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("V2", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("Usense", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Vsense", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("U1", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("V1", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("U2", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("V2", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("Usense", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Vsense", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRectangularTrimmedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("RecurrenceType", new named_type(IFC4_IfcRecurrenceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("DayComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDayInMonthNumber_type)), true)); - attributes.push_back(new entity::attribute("WeekdayComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDayInWeekNumber_type)), true)); - attributes.push_back(new entity::attribute("MonthComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMonthInYearNumber_type)), true)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("Interval", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("Occurrences", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("TimePeriods", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTimePeriod_type)), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("RecurrenceType", new named_type(IFC4_IfcRecurrenceTypeEnum_type), false)); + attributes.push_back(new attribute("DayComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDayInMonthNumber_type)), true)); + attributes.push_back(new attribute("WeekdayComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDayInWeekNumber_type)), true)); + attributes.push_back(new attribute("MonthComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMonthInYearNumber_type)), true)); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("Interval", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("Occurrences", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("TimePeriods", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTimePeriod_type)), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRecurrencePattern_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("TypeIdentifier", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("AttributeIdentifier", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("InstanceName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ListPositions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcInteger_type)), true)); - attributes.push_back(new entity::attribute("InnerReference", new named_type(IFC4_IfcReference_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("TypeIdentifier", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("AttributeIdentifier", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("InstanceName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ListPositions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcInteger_type)), true)); + attributes.push_back(new attribute("InnerReference", new named_type(IFC4_IfcReference_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeStep", new named_type(IFC4_IfcTimeMeasure_type), false)); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTimeSeriesValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeStep", new named_type(IFC4_IfcTimeMeasure_type), false)); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTimeSeriesValue_type)), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRegularTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TotalCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("SteelGrade", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); - attributes.push_back(new entity::attribute("EffectiveDepth", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalBarDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BarCount", new named_type(IFC4_IfcCountMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TotalCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("SteelGrade", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); + attributes.push_back(new attribute("EffectiveDepth", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalBarDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BarCount", new named_type(IFC4_IfcCountMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcementBarProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DefinitionType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ReinforcementSectionDefinitions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSectionReinforcementProperties_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DefinitionType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ReinforcementSectionDefinitions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSectionReinforcementProperties_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcementDefinitionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("BarLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcReinforcingBarTypeEnum_type), true)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("BarLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcReinforcingBarTypeEnum_type), true)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingBar_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcReinforcingBarTypeEnum_type), false)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("BarLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); - attributes.push_back(new entity::attribute("BendingShapeCode", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("BendingParameters", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBendingParameterSelect_type)), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcReinforcingBarTypeEnum_type), false)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("BarLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); + attributes.push_back(new attribute("BendingShapeCode", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("BendingParameters", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBendingParameterSelect_type)), true)); std::vector derived; derived.reserve(16); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingBarType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SteelGrade", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SteelGrade", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("MeshLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MeshWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcReinforcingMeshTypeEnum_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("MeshLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MeshWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcReinforcingMeshTypeEnum_type), true)); std::vector derived; derived.reserve(18); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingMesh_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(11); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcReinforcingMeshTypeEnum_type), false)); - attributes.push_back(new entity::attribute("MeshLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MeshWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BendingShapeCode", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("BendingParameters", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBendingParameterSelect_type)), true)); + std::vector attributes; attributes.reserve(11); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcReinforcingMeshTypeEnum_type), false)); + attributes.push_back(new attribute("MeshLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MeshWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BendingShapeCode", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("BendingParameters", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBendingParameterSelect_type)), true)); std::vector derived; derived.reserve(20); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingMeshType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingObject", new named_type(IFC4_IfcObjectDefinition_type), false)); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingObject", new named_type(IFC4_IfcObjectDefinition_type), false)); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAggregates_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); - attributes.push_back(new entity::attribute("RelatedObjectsType", new named_type(IFC4_IfcObjectTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); + attributes.push_back(new attribute("RelatedObjectsType", new named_type(IFC4_IfcObjectTypeEnum_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssigns_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingActor", new named_type(IFC4_IfcActor_type), false)); - attributes.push_back(new entity::attribute("ActingRole", new named_type(IFC4_IfcActorRole_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingActor", new named_type(IFC4_IfcActor_type), false)); + attributes.push_back(new attribute("ActingRole", new named_type(IFC4_IfcActorRole_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToActor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingControl", new named_type(IFC4_IfcControl_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingControl", new named_type(IFC4_IfcControl_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingGroup", new named_type(IFC4_IfcGroup_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingGroup", new named_type(IFC4_IfcGroup_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Factor", new named_type(IFC4_IfcRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Factor", new named_type(IFC4_IfcRatioMeasure_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToGroupByFactor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingProcess", new named_type(IFC4_IfcProcessSelect_type), false)); - attributes.push_back(new entity::attribute("QuantityInProcess", new named_type(IFC4_IfcMeasureWithUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingProcess", new named_type(IFC4_IfcProcessSelect_type), false)); + attributes.push_back(new attribute("QuantityInProcess", new named_type(IFC4_IfcMeasureWithUnit_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingProduct", new named_type(IFC4_IfcProductSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingProduct", new named_type(IFC4_IfcProductSelect_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingResource", new named_type(IFC4_IfcResourceSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingResource", new named_type(IFC4_IfcResourceSelect_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDefinitionSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDefinitionSelect_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociates_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesApproval_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingClassification", new named_type(IFC4_IfcClassificationSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingClassification", new named_type(IFC4_IfcClassificationSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesClassification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Intent", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC4_IfcConstraint_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Intent", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC4_IfcConstraint_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesConstraint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingDocument", new named_type(IFC4_IfcDocumentSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingDocument", new named_type(IFC4_IfcDocumentSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesDocument_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingLibrary", new named_type(IFC4_IfcLibrarySelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingLibrary", new named_type(IFC4_IfcLibrarySelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesLibrary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingMaterial", new named_type(IFC4_IfcMaterialSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingMaterial", new named_type(IFC4_IfcMaterialSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesMaterial_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnects_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ConnectionGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC4_IfcElement_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ConnectionGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC4_IfcElement_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatingPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("RelatedPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("RelatedConnectionType", new named_type(IFC4_IfcConnectionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("RelatingConnectionType", new named_type(IFC4_IfcConnectionTypeEnum_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatingPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("RelatedPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("RelatedConnectionType", new named_type(IFC4_IfcConnectionTypeEnum_type), false)); + attributes.push_back(new attribute("RelatingConnectionType", new named_type(IFC4_IfcConnectionTypeEnum_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsPathElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingPort", new named_type(IFC4_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC4_IfcDistributionElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingPort", new named_type(IFC4_IfcPort_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC4_IfcDistributionElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsPortToElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingPort", new named_type(IFC4_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RelatedPort", new named_type(IFC4_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RealizingElement", new named_type(IFC4_IfcElement_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingPort", new named_type(IFC4_IfcPort_type), false)); + attributes.push_back(new attribute("RelatedPort", new named_type(IFC4_IfcPort_type), false)); + attributes.push_back(new attribute("RealizingElement", new named_type(IFC4_IfcElement_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsPorts_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC4_IfcStructuralActivityAssignmentSelect_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralActivity", new named_type(IFC4_IfcStructuralActivity_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC4_IfcStructuralActivityAssignmentSelect_type), false)); + attributes.push_back(new attribute("RelatedStructuralActivity", new named_type(IFC4_IfcStructuralActivity_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsStructuralActivity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("RelatingStructuralMember", new named_type(IFC4_IfcStructuralMember_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralConnection", new named_type(IFC4_IfcStructuralConnection_type), false)); - attributes.push_back(new entity::attribute("AppliedCondition", new named_type(IFC4_IfcBoundaryCondition_type), true)); - attributes.push_back(new entity::attribute("AdditionalConditions", new named_type(IFC4_IfcStructuralConnectionCondition_type), true)); - attributes.push_back(new entity::attribute("SupportedLength", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ConditionCoordinateSystem", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("RelatingStructuralMember", new named_type(IFC4_IfcStructuralMember_type), false)); + attributes.push_back(new attribute("RelatedStructuralConnection", new named_type(IFC4_IfcStructuralConnection_type), false)); + attributes.push_back(new attribute("AppliedCondition", new named_type(IFC4_IfcBoundaryCondition_type), true)); + attributes.push_back(new attribute("AdditionalConditions", new named_type(IFC4_IfcStructuralConnectionCondition_type), true)); + attributes.push_back(new attribute("SupportedLength", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ConditionCoordinateSystem", new named_type(IFC4_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsStructuralMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ConnectionConstraint", new named_type(IFC4_IfcConnectionGeometry_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ConnectionConstraint", new named_type(IFC4_IfcConnectionGeometry_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsWithEccentricity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RealizingElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcElement_type)), false)); - attributes.push_back(new entity::attribute("ConnectionType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RealizingElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcElement_type)), false)); + attributes.push_back(new attribute("ConnectionType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsWithRealizingElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProduct_type)), false)); - attributes.push_back(new entity::attribute("RelatingStructure", new named_type(IFC4_IfcSpatialElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProduct_type)), false)); + attributes.push_back(new attribute("RelatingStructure", new named_type(IFC4_IfcSpatialElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelContainedInSpatialStructure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingBuildingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCovering_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingBuildingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCovering_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelCoversBldgElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingSpace", new named_type(IFC4_IfcSpace_type), false)); - attributes.push_back(new entity::attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCovering_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingSpace", new named_type(IFC4_IfcSpace_type), false)); + attributes.push_back(new attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCovering_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelCoversSpaces_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingContext", new named_type(IFC4_IfcContext_type), false)); - attributes.push_back(new entity::attribute("RelatedDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDefinitionSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingContext", new named_type(IFC4_IfcContext_type), false)); + attributes.push_back(new attribute("RelatedDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDefinitionSelect_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDeclares_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDecomposes_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefines_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObject_type)), false)); - attributes.push_back(new entity::attribute("RelatingObject", new named_type(IFC4_IfcObject_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObject_type)), false)); + attributes.push_back(new attribute("RelatingObject", new named_type(IFC4_IfcObject_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefinesByObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); - attributes.push_back(new entity::attribute("RelatingPropertyDefinition", new named_type(IFC4_IfcPropertySetDefinitionSelect_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); + attributes.push_back(new attribute("RelatingPropertyDefinition", new named_type(IFC4_IfcPropertySetDefinitionSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefinesByProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type)), false)); - attributes.push_back(new entity::attribute("RelatingTemplate", new named_type(IFC4_IfcPropertySetTemplate_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type)), false)); + attributes.push_back(new attribute("RelatingTemplate", new named_type(IFC4_IfcPropertySetTemplate_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefinesByTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObject_type)), false)); - attributes.push_back(new entity::attribute("RelatingType", new named_type(IFC4_IfcTypeObject_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObject_type)), false)); + attributes.push_back(new attribute("RelatingType", new named_type(IFC4_IfcTypeObject_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefinesByType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingOpeningElement", new named_type(IFC4_IfcOpeningElement_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildingElement", new named_type(IFC4_IfcElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingOpeningElement", new named_type(IFC4_IfcOpeningElement_type), false)); + attributes.push_back(new attribute("RelatedBuildingElement", new named_type(IFC4_IfcElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelFillsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedControlElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDistributionControlElement_type)), false)); - attributes.push_back(new entity::attribute("RelatingFlowElement", new named_type(IFC4_IfcDistributionFlowElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedControlElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDistributionControlElement_type)), false)); + attributes.push_back(new attribute("RelatingFlowElement", new named_type(IFC4_IfcDistributionFlowElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelFlowControlElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("InterferenceGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("InterferenceType", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("ImpliedOrder", new simple_type(simple_type::logical_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("InterferenceGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("InterferenceType", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("ImpliedOrder", new simple_type(simple_type::logical_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelInterferesElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingObject", new named_type(IFC4_IfcObjectDefinition_type), false)); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingObject", new named_type(IFC4_IfcObjectDefinition_type), false)); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelNests_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedFeatureElement", new named_type(IFC4_IfcFeatureElementAddition_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedFeatureElement", new named_type(IFC4_IfcFeatureElementAddition_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelProjectsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProduct_type)), false)); - attributes.push_back(new entity::attribute("RelatingStructure", new named_type(IFC4_IfcSpatialElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProduct_type)), false)); + attributes.push_back(new attribute("RelatingStructure", new named_type(IFC4_IfcSpatialElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelReferencedInSpatialStructure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingProcess", new named_type(IFC4_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("RelatedProcess", new named_type(IFC4_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("TimeLag", new named_type(IFC4_IfcLagTime_type), true)); - attributes.push_back(new entity::attribute("SequenceType", new named_type(IFC4_IfcSequenceEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedSequenceType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingProcess", new named_type(IFC4_IfcProcess_type), false)); + attributes.push_back(new attribute("RelatedProcess", new named_type(IFC4_IfcProcess_type), false)); + attributes.push_back(new attribute("TimeLag", new named_type(IFC4_IfcLagTime_type), true)); + attributes.push_back(new attribute("SequenceType", new named_type(IFC4_IfcSequenceEnum_type), true)); + attributes.push_back(new attribute("UserDefinedSequenceType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelSequence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingSystem", new named_type(IFC4_IfcSystem_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcSpatialElement_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingSystem", new named_type(IFC4_IfcSystem_type), false)); + attributes.push_back(new attribute("RelatedBuildings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcSpatialElement_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelServicesBuildings_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingSpace", new named_type(IFC4_IfcSpaceBoundarySelect_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("ConnectionGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("PhysicalOrVirtualBoundary", new named_type(IFC4_IfcPhysicalOrVirtualEnum_type), false)); - attributes.push_back(new entity::attribute("InternalOrExternalBoundary", new named_type(IFC4_IfcInternalOrExternalEnum_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingSpace", new named_type(IFC4_IfcSpaceBoundarySelect_type), false)); + attributes.push_back(new attribute("RelatedBuildingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("ConnectionGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("PhysicalOrVirtualBoundary", new named_type(IFC4_IfcPhysicalOrVirtualEnum_type), false)); + attributes.push_back(new attribute("InternalOrExternalBoundary", new named_type(IFC4_IfcInternalOrExternalEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelSpaceBoundary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ParentBoundary", new named_type(IFC4_IfcRelSpaceBoundary1stLevel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ParentBoundary", new named_type(IFC4_IfcRelSpaceBoundary1stLevel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelSpaceBoundary1stLevel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CorrespondingBoundary", new named_type(IFC4_IfcRelSpaceBoundary2ndLevel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CorrespondingBoundary", new named_type(IFC4_IfcRelSpaceBoundary2ndLevel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelSpaceBoundary2ndLevel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingBuildingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedOpeningElement", new named_type(IFC4_IfcFeatureElementSubtraction_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingBuildingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedOpeningElement", new named_type(IFC4_IfcFeatureElementSubtraction_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelVoidsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ParamLength", new named_type(IFC4_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ParamLength", new named_type(IFC4_IfcParameterValue_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReparametrisedCompositeCurveSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ContextOfItems", new named_type(IFC4_IfcRepresentationContext_type), false)); - attributes.push_back(new entity::attribute("RepresentationIdentifier", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RepresentationType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Items", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcRepresentationItem_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ContextOfItems", new named_type(IFC4_IfcRepresentationContext_type), false)); + attributes.push_back(new attribute("RepresentationIdentifier", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("RepresentationType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Items", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcRepresentationItem_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ContextIdentifier", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ContextType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ContextIdentifier", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ContextType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcRepresentationContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappingOrigin", new named_type(IFC4_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("MappedRepresentation", new named_type(IFC4_IfcRepresentation_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappingOrigin", new named_type(IFC4_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("MappedRepresentation", new named_type(IFC4_IfcRepresentation_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcRepresentationMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcResourceApprovalRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC4_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC4_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcResourceConstraintRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcResourceLevelRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(15); - attributes.push_back(new entity::attribute("ScheduleWork", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("ScheduleUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ScheduleStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ScheduleFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ScheduleContour", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LevelingDelay", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("IsOverAllocated", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("StatusTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ActualWork", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("ActualUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ActualStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ActualFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("RemainingWork", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("RemainingUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Completion", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(15); + attributes.push_back(new attribute("ScheduleWork", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("ScheduleUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ScheduleStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ScheduleFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ScheduleContour", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LevelingDelay", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("IsOverAllocated", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("StatusTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ActualWork", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("ActualUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ActualStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ActualFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("RemainingWork", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("RemainingUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("Completion", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(18); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcResourceTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcAxis1Placement_type), false)); - attributes.push_back(new entity::attribute("Angle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcAxis1Placement_type), false)); + attributes.push_back(new attribute("Angle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRevolvedAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EndSweptArea", new named_type(IFC4_IfcProfileDef_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EndSweptArea", new named_type(IFC4_IfcProfileDef_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRevolvedAreaSolidTapered_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BottomRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BottomRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRightCircularCone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRightCircularCylinder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRoofTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRoofTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRoof_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRoofTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRoofTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRoofType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("GlobalId", new named_type(IFC4_IfcGloballyUniqueId_type), false)); - attributes.push_back(new entity::attribute("OwnerHistory", new named_type(IFC4_IfcOwnerHistory_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("GlobalId", new named_type(IFC4_IfcGloballyUniqueId_type), false)); + attributes.push_back(new attribute("OwnerHistory", new named_type(IFC4_IfcOwnerHistory_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRoot_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RoundingRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RoundingRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRoundedRectangleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Prefix", new named_type(IFC4_IfcSIPrefix_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcSIUnitName_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Prefix", new named_type(IFC4_IfcSIPrefix_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcSIUnitName_type), false)); std::vector derived; derived.reserve(4); derived.push_back(true); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSIUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSanitaryTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSanitaryTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSanitaryTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSanitaryTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSanitaryTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSanitaryTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DataOrigin", new named_type(IFC4_IfcDataOriginEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedDataOrigin", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("DataOrigin", new named_type(IFC4_IfcDataOriginEnum_type), true)); + attributes.push_back(new attribute("UserDefinedDataOrigin", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSchedulingTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SectionType", new named_type(IFC4_IfcSectionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("StartProfile", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("EndProfile", new named_type(IFC4_IfcProfileDef_type), true)); + std::vector attributes; attributes.reserve(0); + std::vector derived; derived.reserve(3); + derived.push_back(false); derived.push_back(false); derived.push_back(false); + IFC4_IfcSeamCurve_type->set_attributes(attributes, derived); + } + { + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SectionType", new named_type(IFC4_IfcSectionTypeEnum_type), false)); + attributes.push_back(new attribute("StartProfile", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("EndProfile", new named_type(IFC4_IfcProfileDef_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSectionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LongitudinalStartPosition", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("LongitudinalEndPosition", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TransversePosition", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ReinforcementRole", new named_type(IFC4_IfcReinforcingBarRoleEnum_type), false)); - attributes.push_back(new entity::attribute("SectionDefinition", new named_type(IFC4_IfcSectionProperties_type), false)); - attributes.push_back(new entity::attribute("CrossSectionReinforcementDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcReinforcementBarProperties_type)), false)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LongitudinalStartPosition", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("LongitudinalEndPosition", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("TransversePosition", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ReinforcementRole", new named_type(IFC4_IfcReinforcingBarRoleEnum_type), false)); + attributes.push_back(new attribute("SectionDefinition", new named_type(IFC4_IfcSectionProperties_type), false)); + attributes.push_back(new attribute("CrossSectionReinforcementDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcReinforcementBarProperties_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSectionReinforcementProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SpineCurve", new named_type(IFC4_IfcCompositeCurve_type), false)); - attributes.push_back(new entity::attribute("CrossSections", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcProfileDef_type)), false)); - attributes.push_back(new entity::attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcAxis2Placement3D_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SpineCurve", new named_type(IFC4_IfcCompositeCurve_type), false)); + attributes.push_back(new attribute("CrossSections", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcProfileDef_type)), false)); + attributes.push_back(new attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcAxis2Placement3D_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSectionedSpine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSensorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSensorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSensor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSensorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSensorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSensorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcShadingDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcShadingDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShadingDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcShadingDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcShadingDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShadingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ShapeRepresentations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcShapeModel_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ProductDefinitional", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("PartOfProductDefinitionShape", new named_type(IFC4_IfcProductRepresentationSelect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ShapeRepresentations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcShapeModel_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ProductDefinitional", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("PartOfProductDefinitionShape", new named_type(IFC4_IfcProductRepresentationSelect_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShapeAspect_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShapeModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShapeRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SbsmBoundary", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SbsmBoundary", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcShell_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcShellBasedSurfaceModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSimpleProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("TemplateType", new named_type(IFC4_IfcSimplePropertyTemplateTypeEnum_type), true)); - attributes.push_back(new entity::attribute("PrimaryMeasureType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("SecondaryMeasureType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Enumerators", new named_type(IFC4_IfcPropertyEnumeration_type), true)); - attributes.push_back(new entity::attribute("PrimaryUnit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("SecondaryUnit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AccessState", new named_type(IFC4_IfcStateEnum_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("TemplateType", new named_type(IFC4_IfcSimplePropertyTemplateTypeEnum_type), true)); + attributes.push_back(new attribute("PrimaryMeasureType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("SecondaryMeasureType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Enumerators", new named_type(IFC4_IfcPropertyEnumeration_type), true)); + attributes.push_back(new attribute("PrimaryUnit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("SecondaryUnit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("Expression", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("AccessState", new named_type(IFC4_IfcStateEnum_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSimplePropertyTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RefLatitude", new named_type(IFC4_IfcCompoundPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RefLongitude", new named_type(IFC4_IfcCompoundPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RefElevation", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LandTitleNumber", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("SiteAddress", new named_type(IFC4_IfcPostalAddress_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RefLatitude", new named_type(IFC4_IfcCompoundPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RefLongitude", new named_type(IFC4_IfcCompoundPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RefElevation", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LandTitleNumber", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("SiteAddress", new named_type(IFC4_IfcPostalAddress_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSite_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSlabTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSlabTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlab_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlabElementedCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlabStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSlabTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSlabTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlabType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SlippageX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("SlippageY", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("SlippageZ", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SlippageX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("SlippageY", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("SlippageZ", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlippageConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSolarDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSolarDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSolarDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSolarDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSolarDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSolarDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcSolidModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpaceTypeEnum_type), true)); - attributes.push_back(new entity::attribute("ElevationWithFlooring", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpaceTypeEnum_type), true)); + attributes.push_back(new attribute("ElevationWithFlooring", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpaceHeaterTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpaceHeaterTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpaceHeater_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpaceHeaterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpaceHeaterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpaceHeaterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpaceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpaceTypeEnum_type), false)); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpaceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ElementType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ElementType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CompositionType", new named_type(IFC4_IfcElementCompositionEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CompositionType", new named_type(IFC4_IfcElementCompositionEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialStructureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialStructureElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpatialZoneTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpatialZoneTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialZone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpatialZoneTypeEnum_type), false)); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpatialZoneTypeEnum_type), false)); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialZoneType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSphere_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStackTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector derived; derived.reserve(2); + derived.push_back(false); derived.push_back(false); + IFC4_IfcSphericalSurface_type->set_attributes(attributes, derived); + } + { + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStackTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStackTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStackTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStackTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStackTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStairTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStairTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStair_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("NumberOfRisers", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("NumberOfTreads", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("RiserHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TreadLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStairFlightTypeEnum_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("NumberOfRisers", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("NumberOfTreads", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("RiserHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TreadLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStairFlightTypeEnum_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStairFlight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStairFlightTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStairFlightTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStairFlightType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStairTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStairTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStairType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("DestabilizingLoad", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("DestabilizingLoad", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AppliedLoad", new named_type(IFC4_IfcStructuralLoad_type), false)); - attributes.push_back(new entity::attribute("GlobalOrLocal", new named_type(IFC4_IfcGlobalOrLocalEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AppliedLoad", new named_type(IFC4_IfcStructuralLoad_type), false)); + attributes.push_back(new attribute("GlobalOrLocal", new named_type(IFC4_IfcGlobalOrLocalEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralActivity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAnalysisModelTypeEnum_type), false)); - attributes.push_back(new entity::attribute("OrientationOf2DPlane", new named_type(IFC4_IfcAxis2Placement3D_type), true)); - attributes.push_back(new entity::attribute("LoadedBy", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStructuralLoadGroup_type)), true)); - attributes.push_back(new entity::attribute("HasResults", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStructuralResultGroup_type)), true)); - attributes.push_back(new entity::attribute("SharedPlacement", new named_type(IFC4_IfcObjectPlacement_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAnalysisModelTypeEnum_type), false)); + attributes.push_back(new attribute("OrientationOf2DPlane", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + attributes.push_back(new attribute("LoadedBy", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStructuralLoadGroup_type)), true)); + attributes.push_back(new attribute("HasResults", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStructuralResultGroup_type)), true)); + attributes.push_back(new attribute("SharedPlacement", new named_type(IFC4_IfcObjectPlacement_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralAnalysisModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AppliedCondition", new named_type(IFC4_IfcBoundaryCondition_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AppliedCondition", new named_type(IFC4_IfcBoundaryCondition_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcStructuralConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProjectedOrTrue", new named_type(IFC4_IfcProjectedOrTrueLengthEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveActivityTypeEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProjectedOrTrue", new named_type(IFC4_IfcProjectedOrTrueLengthEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveActivityTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveMemberTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveMemberTypeEnum_type), false)); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveMemberVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveActivityTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveActivityTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLinearAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcStructuralLoad_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SelfWeightCoefficients", new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcRatioMeasure_type)), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SelfWeightCoefficients", new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcRatioMeasure_type)), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcStructuralLoadOrResult_type)), false)); - attributes.push_back(new entity::attribute("Locations", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type))), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcStructuralLoadOrResult_type)), false)); + attributes.push_back(new attribute("Locations", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type))), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadConfiguration_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLoadGroupTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ActionType", new named_type(IFC4_IfcActionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ActionSource", new named_type(IFC4_IfcActionSourceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Coefficient", new named_type(IFC4_IfcRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLoadGroupTypeEnum_type), false)); + attributes.push_back(new attribute("ActionType", new named_type(IFC4_IfcActionTypeEnum_type), false)); + attributes.push_back(new attribute("ActionSource", new named_type(IFC4_IfcActionSourceTypeEnum_type), false)); + attributes.push_back(new attribute("Coefficient", new named_type(IFC4_IfcRatioMeasure_type), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LinearForceX", new named_type(IFC4_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearForceY", new named_type(IFC4_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearForceZ", new named_type(IFC4_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentX", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentY", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentZ", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LinearForceX", new named_type(IFC4_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearForceY", new named_type(IFC4_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearForceZ", new named_type(IFC4_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentX", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentY", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentZ", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadLinearForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcStructuralLoadOrResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PlanarForceX", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PlanarForceY", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PlanarForceZ", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PlanarForceX", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); + attributes.push_back(new attribute("PlanarForceY", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); + attributes.push_back(new attribute("PlanarForceZ", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadPlanarForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("DisplacementX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("DisplacementY", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("DisplacementZ", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRX", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRY", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRZ", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("DisplacementX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("DisplacementY", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("DisplacementZ", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRX", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRY", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRZ", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadSingleDisplacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Distortion", new named_type(IFC4_IfcCurvatureMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Distortion", new named_type(IFC4_IfcCurvatureMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadSingleDisplacementDistortion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("ForceX", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("ForceY", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("ForceZ", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentX", new named_type(IFC4_IfcTorqueMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentY", new named_type(IFC4_IfcTorqueMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentZ", new named_type(IFC4_IfcTorqueMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("ForceX", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("ForceY", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("ForceZ", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("MomentX", new named_type(IFC4_IfcTorqueMeasure_type), true)); + attributes.push_back(new attribute("MomentY", new named_type(IFC4_IfcTorqueMeasure_type), true)); + attributes.push_back(new attribute("MomentZ", new named_type(IFC4_IfcTorqueMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadSingleForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WarpingMoment", new named_type(IFC4_IfcWarpingMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WarpingMoment", new named_type(IFC4_IfcWarpingMomentMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadSingleForceWarping_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcStructuralLoadStatic_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("DeltaTConstant", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("DeltaTY", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("DeltaTZ", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("DeltaTConstant", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("DeltaTY", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("DeltaTZ", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadTemperature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralPlanarAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralPointAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ConditionCoordinateSystem", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ConditionCoordinateSystem", new named_type(IFC4_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralPointConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralPointReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TheoryType", new named_type(IFC4_IfcAnalysisTheoryTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ResultForLoadGroup", new named_type(IFC4_IfcStructuralLoadGroup_type), true)); - attributes.push_back(new entity::attribute("IsLinear", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TheoryType", new named_type(IFC4_IfcAnalysisTheoryTypeEnum_type), false)); + attributes.push_back(new attribute("ResultForLoadGroup", new named_type(IFC4_IfcStructuralLoadGroup_type), true)); + attributes.push_back(new attribute("IsLinear", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralResultGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProjectedOrTrue", new named_type(IFC4_IfcProjectedOrTrueLengthEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceActivityTypeEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProjectedOrTrue", new named_type(IFC4_IfcProjectedOrTrueLengthEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceActivityTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceMemberTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceMemberTypeEnum_type), false)); + attributes.push_back(new attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceMemberVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceActivityTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceActivityTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStyleModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Item", new named_type(IFC4_IfcRepresentationItem_type), true)); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStyleAssignmentSelect_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Item", new named_type(IFC4_IfcRepresentationItem_type), true)); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStyleAssignmentSelect_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStyledItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStyledRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSubContractResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSubContractResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSubContractResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSubContractResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSubContractResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSubContractResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ParentEdge", new named_type(IFC4_IfcEdge_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ParentEdge", new named_type(IFC4_IfcEdge_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSubedge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("ReferenceSurface", new named_type(IFC4_IfcSurface_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Curve3D", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("AssociatedGeometry", new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4_IfcPcurve_type)), false)); + attributes.push_back(new attribute("MasterRepresentation", new named_type(IFC4_IfcPreferredSurfaceCurveRepresentation_type), false)); + std::vector derived; derived.reserve(3); + derived.push_back(false); derived.push_back(false); derived.push_back(false); + IFC4_IfcSurfaceCurve_type->set_attributes(attributes, derived); + } + { + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("ReferenceSurface", new named_type(IFC4_IfcSurface_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceCurveSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSurfaceFeatureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSurfaceFeatureTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ExtrudedDirection", new named_type(IFC4_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ExtrudedDirection", new named_type(IFC4_IfcDirection_type), false)); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceOfLinearExtrusion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AxisPosition", new named_type(IFC4_IfcAxis1Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AxisPosition", new named_type(IFC4_IfcAxis1Placement_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceOfRevolution_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SurfaceReinforcement1", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), true)); - attributes.push_back(new entity::attribute("SurfaceReinforcement2", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), true)); - attributes.push_back(new entity::attribute("ShearReinforcement", new named_type(IFC4_IfcRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SurfaceReinforcement1", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), true)); + attributes.push_back(new attribute("SurfaceReinforcement2", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), true)); + attributes.push_back(new attribute("ShearReinforcement", new named_type(IFC4_IfcRatioMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceReinforcementArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Side", new named_type(IFC4_IfcSurfaceSide_type), false)); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC4_IfcSurfaceStyleElementSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Side", new named_type(IFC4_IfcSurfaceSide_type), false)); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC4_IfcSurfaceStyleElementSelect_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("DiffuseTransmissionColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("DiffuseReflectionColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("TransmissionColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("ReflectanceColour", new named_type(IFC4_IfcColourRgb_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("DiffuseTransmissionColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("DiffuseReflectionColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("TransmissionColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("ReflectanceColour", new named_type(IFC4_IfcColourRgb_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyleLighting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RefractionIndex", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("DispersionFactor", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RefractionIndex", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("DispersionFactor", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyleRefraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("DiffuseColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("TransmissionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("DiffuseTransmissionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("ReflectionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("SpecularColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("SpecularHighlight", new named_type(IFC4_IfcSpecularHighlightSelect_type), true)); - attributes.push_back(new entity::attribute("ReflectanceMethod", new named_type(IFC4_IfcReflectanceMethodEnum_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("DiffuseColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("TransmissionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("DiffuseTransmissionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("ReflectionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("SpecularColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("SpecularHighlight", new named_type(IFC4_IfcSpecularHighlightSelect_type), true)); + attributes.push_back(new attribute("ReflectanceMethod", new named_type(IFC4_IfcReflectanceMethodEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyleRendering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SurfaceColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("Transparency", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SurfaceColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("Transparency", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyleShading_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Textures", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSurfaceTexture_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Textures", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSurfaceTexture_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcSurfaceStyleWithTextures_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RepeatS", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("RepeatT", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Mode", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("TextureTransform", new named_type(IFC4_IfcCartesianTransformationOperator2D_type), true)); - attributes.push_back(new entity::attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIdentifier_type)), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RepeatS", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("RepeatT", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Mode", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("TextureTransform", new named_type(IFC4_IfcCartesianTransformationOperator2D_type), true)); + attributes.push_back(new attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIdentifier_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SweptArea", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SweptArea", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InnerRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InnerRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSweptDiskSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSweptDiskSolidPolygonal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SweptCurve", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SweptCurve", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSweptSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSwitchingDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSwitchingDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSwitchingDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSwitchingDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSwitchingDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSwitchingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSystemFurnitureElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSystemFurnitureElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSystemFurnitureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSystemFurnitureElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSystemFurnitureElementTypeEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSystemFurnitureElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("WebEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("WebSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("WebEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("WebSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Rows", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTableRow_type)), true)); - attributes.push_back(new entity::attribute("Columns", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTableColumn_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Rows", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTableRow_type)), true)); + attributes.push_back(new attribute("Columns", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTableColumn_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTable_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("ReferencePath", new named_type(IFC4_IfcReference_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("ReferencePath", new named_type(IFC4_IfcReference_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTableColumn_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RowCells", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("IsHeading", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RowCells", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("IsHeading", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcTableRow_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTankTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTankTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTank_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTankTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTankTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTankType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("WorkMethod", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("IsMilestone", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("TaskTime", new named_type(IFC4_IfcTaskTime_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTaskTypeEnum_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("WorkMethod", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("IsMilestone", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("TaskTime", new named_type(IFC4_IfcTaskTime_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTaskTypeEnum_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTask_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(17); - attributes.push_back(new entity::attribute("DurationType", new named_type(IFC4_IfcTaskDurationEnum_type), true)); - attributes.push_back(new entity::attribute("ScheduleDuration", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("ScheduleStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ScheduleFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("EarlyStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("EarlyFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("LateStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("LateFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("FreeFloat", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("TotalFloat", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("IsCritical", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("StatusTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ActualDuration", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("ActualStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ActualFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("RemainingTime", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("Completion", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(17); + attributes.push_back(new attribute("DurationType", new named_type(IFC4_IfcTaskDurationEnum_type), true)); + attributes.push_back(new attribute("ScheduleDuration", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("ScheduleStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ScheduleFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("EarlyStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("EarlyFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("LateStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("LateFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("FreeFloat", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("TotalFloat", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("IsCritical", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("StatusTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ActualDuration", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("ActualStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ActualFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("RemainingTime", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("Completion", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(20); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTaskTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Recurrence", new named_type(IFC4_IfcRecurrencePattern_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Recurrence", new named_type(IFC4_IfcRecurrencePattern_type), false)); std::vector derived; derived.reserve(21); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTaskTimeRecurring_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTaskTypeEnum_type), false)); - attributes.push_back(new entity::attribute("WorkMethod", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTaskTypeEnum_type), false)); + attributes.push_back(new attribute("WorkMethod", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTaskType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TelephoneNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("FacsimileNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PagerNumber", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ElectronicMailAddresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("WWWHomePageURL", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("MessagingIDs", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcURIReference_type)), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TelephoneNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("FacsimileNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("PagerNumber", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ElectronicMailAddresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("WWWHomePageURL", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("MessagingIDs", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcURIReference_type)), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTelecomAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTendonTypeEnum_type), true)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionForce", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PreStress", new named_type(IFC4_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("FrictionCoefficient", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("AnchorageSlip", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MinCurvatureRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTendonTypeEnum_type), true)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("TensionForce", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("PreStress", new named_type(IFC4_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("FrictionCoefficient", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("AnchorageSlip", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MinCurvatureRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTendon_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTendonAnchorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTendonAnchorTypeEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTendonAnchor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTendonAnchorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTendonAnchorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTendonAnchorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTendonTypeEnum_type), false)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("SheethDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTendonTypeEnum_type), false)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("SheathDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTendonType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Coordinates", new named_type(IFC4_IfcCartesianPointList3D_type), false)); - attributes.push_back(new entity::attribute("Normals", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcParameterValue_type))), true)); - attributes.push_back(new entity::attribute("Closed", new named_type(IFC4_IfcBoolean_type), true)); - std::vector derived; derived.reserve(3); - derived.push_back(false); derived.push_back(false); derived.push_back(false); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new named_type(IFC4_IfcCartesianPointList3D_type), false)); + std::vector derived; derived.reserve(1); + derived.push_back(false); IFC4_IfcTessellatedFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcTessellatedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Literal", new named_type(IFC4_IfcPresentableText_type), false)); - attributes.push_back(new entity::attribute("Placement", new named_type(IFC4_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("Path", new named_type(IFC4_IfcTextPath_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Literal", new named_type(IFC4_IfcPresentableText_type), false)); + attributes.push_back(new attribute("Placement", new named_type(IFC4_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("Path", new named_type(IFC4_IfcTextPath_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextLiteral_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Extent", new named_type(IFC4_IfcPlanarExtent_type), false)); - attributes.push_back(new entity::attribute("BoxAlignment", new named_type(IFC4_IfcBoxAlignment_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Extent", new named_type(IFC4_IfcPlanarExtent_type), false)); + attributes.push_back(new attribute("BoxAlignment", new named_type(IFC4_IfcBoxAlignment_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextLiteralWithExtent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("TextCharacterAppearance", new named_type(IFC4_IfcTextStyleForDefinedFont_type), true)); - attributes.push_back(new entity::attribute("TextStyle", new named_type(IFC4_IfcTextStyleTextModel_type), true)); - attributes.push_back(new entity::attribute("TextFontStyle", new named_type(IFC4_IfcTextFontSelect_type), false)); - attributes.push_back(new entity::attribute("ModelOrDraughting", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("TextCharacterAppearance", new named_type(IFC4_IfcTextStyleForDefinedFont_type), true)); + attributes.push_back(new attribute("TextStyle", new named_type(IFC4_IfcTextStyleTextModel_type), true)); + attributes.push_back(new attribute("TextFontStyle", new named_type(IFC4_IfcTextFontSelect_type), false)); + attributes.push_back(new attribute("ModelOrDraughting", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("FontFamily", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTextFontName_type)), false)); - attributes.push_back(new entity::attribute("FontStyle", new named_type(IFC4_IfcFontStyle_type), true)); - attributes.push_back(new entity::attribute("FontVariant", new named_type(IFC4_IfcFontVariant_type), true)); - attributes.push_back(new entity::attribute("FontWeight", new named_type(IFC4_IfcFontWeight_type), true)); - attributes.push_back(new entity::attribute("FontSize", new named_type(IFC4_IfcSizeSelect_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("FontFamily", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTextFontName_type)), false)); + attributes.push_back(new attribute("FontStyle", new named_type(IFC4_IfcFontStyle_type), true)); + attributes.push_back(new attribute("FontVariant", new named_type(IFC4_IfcFontVariant_type), true)); + attributes.push_back(new attribute("FontWeight", new named_type(IFC4_IfcFontWeight_type), true)); + attributes.push_back(new attribute("FontSize", new named_type(IFC4_IfcSizeSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextStyleFontModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Colour", new named_type(IFC4_IfcColour_type), false)); - attributes.push_back(new entity::attribute("BackgroundColour", new named_type(IFC4_IfcColour_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Colour", new named_type(IFC4_IfcColour_type), false)); + attributes.push_back(new attribute("BackgroundColour", new named_type(IFC4_IfcColour_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcTextStyleForDefinedFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("TextIndent", new named_type(IFC4_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("TextAlign", new named_type(IFC4_IfcTextAlignment_type), true)); - attributes.push_back(new entity::attribute("TextDecoration", new named_type(IFC4_IfcTextDecoration_type), true)); - attributes.push_back(new entity::attribute("LetterSpacing", new named_type(IFC4_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("WordSpacing", new named_type(IFC4_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("TextTransform", new named_type(IFC4_IfcTextTransformation_type), true)); - attributes.push_back(new entity::attribute("LineHeight", new named_type(IFC4_IfcSizeSelect_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("TextIndent", new named_type(IFC4_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("TextAlign", new named_type(IFC4_IfcTextAlignment_type), true)); + attributes.push_back(new attribute("TextDecoration", new named_type(IFC4_IfcTextDecoration_type), true)); + attributes.push_back(new attribute("LetterSpacing", new named_type(IFC4_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("WordSpacing", new named_type(IFC4_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("TextTransform", new named_type(IFC4_IfcTextTransformation_type), true)); + attributes.push_back(new attribute("LineHeight", new named_type(IFC4_IfcSizeSelect_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextStyleTextModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Maps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSurfaceTexture_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Maps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSurfaceTexture_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTextureCoordinate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Mode", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcReal_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Mode", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcReal_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextureCoordinateGenerator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Vertices", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcTextureVertex_type)), false)); - attributes.push_back(new entity::attribute("MappedTo", new named_type(IFC4_IfcFace_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Vertices", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcTextureVertex_type)), false)); + attributes.push_back(new attribute("MappedTo", new named_type(IFC4_IfcFace_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcParameterValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcParameterValue_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTextureVertex_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TexCoordsList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcParameterValue_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TexCoordsList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcParameterValue_type))), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTextureVertexList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC4_IfcTime_type), false)); - attributes.push_back(new entity::attribute("EndTime", new named_type(IFC4_IfcTime_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("StartTime", new named_type(IFC4_IfcTime_type), false)); + attributes.push_back(new attribute("EndTime", new named_type(IFC4_IfcTime_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcTimePeriod_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("EndTime", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("TimeSeriesDataType", new named_type(IFC4_IfcTimeSeriesDataTypeEnum_type), false)); - attributes.push_back(new entity::attribute("DataOrigin", new named_type(IFC4_IfcDataOriginEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedDataOrigin", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("StartTime", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("EndTime", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("TimeSeriesDataType", new named_type(IFC4_IfcTimeSeriesDataTypeEnum_type), false)); + attributes.push_back(new attribute("DataOrigin", new named_type(IFC4_IfcDataOriginEnum_type), false)); + attributes.push_back(new attribute("UserDefinedDataOrigin", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTimeSeriesValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcTopologicalRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTopologyRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTransformerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MajorRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("MinorRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector derived; derived.reserve(3); + derived.push_back(false); derived.push_back(false); derived.push_back(false); + IFC4_IfcToroidalSurface_type->set_attributes(attributes, derived); + } + { + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTransformerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTransformer_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTransformerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTransformerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTransformerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTransportElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTransportElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTransportElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTransportElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTransportElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTransportElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BottomXDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopXDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopXOffset", new named_type(IFC4_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BottomXDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopXDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopXOffset", new named_type(IFC4_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTrapeziumProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CoordIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), false)); - attributes.push_back(new entity::attribute("NormalIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Normals", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcParameterValue_type))), true)); + attributes.push_back(new attribute("Closed", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("CoordIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), false)); + attributes.push_back(new attribute("PnIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTriangulatedFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Trim1", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4_IfcTrimmingSelect_type)), false)); - attributes.push_back(new entity::attribute("Trim2", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4_IfcTrimmingSelect_type)), false)); - attributes.push_back(new entity::attribute("SenseAgreement", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("MasterRepresentation", new named_type(IFC4_IfcTrimmingPreference_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("Trim1", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4_IfcTrimmingSelect_type)), false)); + attributes.push_back(new attribute("Trim2", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4_IfcTrimmingSelect_type)), false)); + attributes.push_back(new attribute("SenseAgreement", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("MasterRepresentation", new named_type(IFC4_IfcTrimmingPreference_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTrimmedCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTubeBundleTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTubeBundleTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTubeBundle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTubeBundleTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTubeBundleTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTubeBundleType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ApplicableOccurrence", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("HasPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ApplicableOccurrence", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("HasPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type)), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTypeObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ProcessType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ProcessType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTypeProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RepresentationMaps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcRepresentationMap_type)), true)); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RepresentationMaps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcRepresentationMap_type)), true)); + attributes.push_back(new attribute("Tag", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTypeProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ResourceType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ResourceType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTypeResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Units", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcUnit_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Units", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcUnit_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcUnitAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcUnitaryControlElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcUnitaryControlElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUnitaryControlElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcUnitaryControlElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcUnitaryControlElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUnitaryControlElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcUnitaryEquipmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcUnitaryEquipmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUnitaryEquipment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcUnitaryEquipmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcUnitaryEquipmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUnitaryEquipmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcValveTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcValveTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcValve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcValveTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcValveTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcValveType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Magnitude", new named_type(IFC4_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); + attributes.push_back(new attribute("Magnitude", new named_type(IFC4_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcVector_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcVertex_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LoopVertex", new named_type(IFC4_IfcVertex_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LoopVertex", new named_type(IFC4_IfcVertex_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcVertexLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("VertexGeometry", new named_type(IFC4_IfcPoint_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("VertexGeometry", new named_type(IFC4_IfcPoint_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcVertexPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcVibrationIsolatorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcVibrationIsolatorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcVibrationIsolator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcVibrationIsolatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcVibrationIsolatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcVibrationIsolatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcVirtualElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("IntersectingAxes", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("OffsetDistances", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("IntersectingAxes", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("OffsetDistances", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcVirtualGridIntersection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcVoidingFeatureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcVoidingFeatureTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcVoidingFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWallTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWallTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWall_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWallElementedCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWallStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWallTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWallTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWallType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWasteTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWasteTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWasteTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWasteTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWasteTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWasteTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWindowTypeEnum_type), true)); - attributes.push_back(new entity::attribute("PartitioningType", new named_type(IFC4_IfcWindowTypePartitioningEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPartitioningType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWindowTypeEnum_type), true)); + attributes.push_back(new attribute("PartitioningType", new named_type(IFC4_IfcWindowTypePartitioningEnum_type), true)); + attributes.push_back(new attribute("UserDefinedPartitioningType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindow_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::attribute("LiningDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MullionThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FirstTransomOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SecondTransomOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("FirstMullionOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SecondMullionOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); - attributes.push_back(new entity::attribute("LiningOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningToPanelOffsetX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningToPanelOffsetY", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new attribute("LiningDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("MullionThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FirstTransomOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("SecondTransomOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("FirstMullionOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("SecondMullionOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + attributes.push_back(new attribute("LiningOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningToPanelOffsetX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningToPanelOffsetY", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(16); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowLiningProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcWindowPanelOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC4_IfcWindowPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("FrameDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FrameThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcWindowPanelOperationEnum_type), false)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC4_IfcWindowPanelPositionEnum_type), false)); + attributes.push_back(new attribute("FrameDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FrameThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowPanelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC4_IfcWindowStyleConstructionEnum_type), false)); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcWindowStyleOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Sizeable", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC4_IfcWindowStyleConstructionEnum_type), false)); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcWindowStyleOperationEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Sizeable", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWindowTypeEnum_type), false)); - attributes.push_back(new entity::attribute("PartitioningType", new named_type(IFC4_IfcWindowTypePartitioningEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPartitioningType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWindowTypeEnum_type), false)); + attributes.push_back(new attribute("PartitioningType", new named_type(IFC4_IfcWindowTypePartitioningEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("UserDefinedPartitioningType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("WorkingTimes", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcWorkTime_type)), true)); - attributes.push_back(new entity::attribute("ExceptionTimes", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcWorkTime_type)), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWorkCalendarTypeEnum_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("WorkingTimes", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcWorkTime_type)), true)); + attributes.push_back(new attribute("ExceptionTimes", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcWorkTime_type)), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWorkCalendarTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkCalendar_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("CreationDate", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("Creators", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPerson_type)), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Duration", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("TotalFloat", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("FinishTime", new named_type(IFC4_IfcDateTime_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("CreationDate", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("Creators", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPerson_type)), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Duration", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("TotalFloat", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("StartTime", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("FinishTime", new named_type(IFC4_IfcDateTime_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWorkPlanTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWorkPlanTypeEnum_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkPlan_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWorkScheduleTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWorkScheduleTypeEnum_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RecurrencePattern", new named_type(IFC4_IfcRecurrencePattern_type), true)); - attributes.push_back(new entity::attribute("Start", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("Finish", new named_type(IFC4_IfcDate_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RecurrencePattern", new named_type(IFC4_IfcRecurrencePattern_type), true)); + attributes.push_back(new attribute("Start", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("Finish", new named_type(IFC4_IfcDate_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcZShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcZone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsActingUpon", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToActor_type, IFC4_IfcRelAssignsToActor_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsActingUpon", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToActor_type, IFC4_IfcRelAssignsToActor_type->attributes()[0])); IFC4_IfcActor_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcActorRole_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("OfPerson", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPerson_type, IFC4_IfcPerson_type->attributes()[7])); - attributes.push_back(new entity::inverse_attribute("OfOrganization", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcOrganization_type, IFC4_IfcOrganization_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("OfPerson", inverse_attribute::set_type, 0, -1, IFC4_IfcPerson_type, IFC4_IfcPerson_type->attributes()[7])); + attributes.push_back(new inverse_attribute("OfOrganization", inverse_attribute::set_type, 0, -1, IFC4_IfcOrganization_type, IFC4_IfcOrganization_type->attributes()[4])); IFC4_IfcAddress_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC4_IfcAnnotation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcAppliedValue_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ApprovedObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesApproval_type, IFC4_IfcRelAssociatesApproval_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ApprovedResources", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcResourceApprovalRelationship_type, IFC4_IfcResourceApprovalRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsRelatedWith", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcApprovalRelationship_type, IFC4_IfcApprovalRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("Relates", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcApprovalRelationship_type, IFC4_IfcApprovalRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ApprovedObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesApproval_type, IFC4_IfcRelAssociatesApproval_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ApprovedResources", inverse_attribute::set_type, 0, -1, IFC4_IfcResourceApprovalRelationship_type, IFC4_IfcResourceApprovalRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsRelatedWith", inverse_attribute::set_type, 0, -1, IFC4_IfcApprovalRelationship_type, IFC4_IfcApprovalRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("Relates", inverse_attribute::set_type, 0, -1, IFC4_IfcApprovalRelationship_type, IFC4_IfcApprovalRelationship_type->attributes()[0])); IFC4_IfcApproval_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ClassificationForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesClassification_type, IFC4_IfcRelAssociatesClassification_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcClassificationReference_type, IFC4_IfcClassificationReference_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ClassificationForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesClassification_type, IFC4_IfcRelAssociatesClassification_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcClassificationReference_type, IFC4_IfcClassificationReference_type->attributes()[0])); IFC4_IfcClassification_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ClassificationRefForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesClassification_type, IFC4_IfcRelAssociatesClassification_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcClassificationReference_type, IFC4_IfcClassificationReference_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ClassificationRefForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesClassification_type, IFC4_IfcRelAssociatesClassification_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcClassificationReference_type, IFC4_IfcClassificationReference_type->attributes()[0])); IFC4_IfcClassificationReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("UsingCurves", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcCompositeCurve_type, IFC4_IfcCompositeCurve_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("UsingCurves", inverse_attribute::set_type, 1, -1, IFC4_IfcCompositeCurve_type, IFC4_IfcCompositeCurve_type->attributes()[0])); IFC4_IfcCompositeCurveSegment_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PropertiesForConstraint", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcResourceConstraintRelationship_type, IFC4_IfcResourceConstraintRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PropertiesForConstraint", inverse_attribute::set_type, 0, -1, IFC4_IfcResourceConstraintRelationship_type, IFC4_IfcResourceConstraintRelationship_type->attributes()[0])); IFC4_IfcConstraint_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsDefinedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Declares", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsDefinedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Declares", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[0])); IFC4_IfcContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcContextDependentUnit_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Controls", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToControl_type, IFC4_IfcRelAssignsToControl_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Controls", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToControl_type, IFC4_IfcRelAssignsToControl_type->attributes()[0])); IFC4_IfcControl_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcConversionBasedUnit_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasCoordinateOperation", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcCoordinateOperation_type, IFC4_IfcCoordinateOperation_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasCoordinateOperation", inverse_attribute::set_type, 0, 1, IFC4_IfcCoordinateOperation_type, IFC4_IfcCoordinateOperation_type->attributes()[0])); IFC4_IfcCoordinateReferenceSystem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("CoversSpaces", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelCoversSpaces_type, IFC4_IfcRelCoversSpaces_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("CoversElements", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelCoversBldgElements_type, IFC4_IfcRelCoversBldgElements_type->attributes()[1])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("CoversSpaces", inverse_attribute::set_type, 0, 1, IFC4_IfcRelCoversSpaces_type, IFC4_IfcRelCoversSpaces_type->attributes()[1])); + attributes.push_back(new inverse_attribute("CoversElements", inverse_attribute::set_type, 0, 1, IFC4_IfcRelCoversBldgElements_type, IFC4_IfcRelCoversBldgElements_type->attributes()[1])); IFC4_IfcCovering_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedToFlowElement", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelFlowControlElements_type, IFC4_IfcRelFlowControlElements_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedToFlowElement", inverse_attribute::set_type, 0, 1, IFC4_IfcRelFlowControlElements_type, IFC4_IfcRelFlowControlElements_type->attributes()[0])); IFC4_IfcDistributionControlElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasPorts", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsPortToElement_type, IFC4_IfcRelConnectsPortToElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasPorts", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsPortToElement_type, IFC4_IfcRelConnectsPortToElement_type->attributes()[1])); IFC4_IfcDistributionElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasControlElements", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelFlowControlElements_type, IFC4_IfcRelFlowControlElements_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasControlElements", inverse_attribute::set_type, 0, 1, IFC4_IfcRelFlowControlElements_type, IFC4_IfcRelFlowControlElements_type->attributes()[1])); IFC4_IfcDistributionFlowElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("DocumentInfoForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesDocument_type, IFC4_IfcRelAssociatesDocument_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasDocumentReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcDocumentReference_type, IFC4_IfcDocumentReference_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsPointedTo", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcDocumentInformationRelationship_type, IFC4_IfcDocumentInformationRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsPointer", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcDocumentInformationRelationship_type, IFC4_IfcDocumentInformationRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("DocumentInfoForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesDocument_type, IFC4_IfcRelAssociatesDocument_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasDocumentReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcDocumentReference_type, IFC4_IfcDocumentReference_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsPointedTo", inverse_attribute::set_type, 0, -1, IFC4_IfcDocumentInformationRelationship_type, IFC4_IfcDocumentInformationRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsPointer", inverse_attribute::set_type, 0, 1, IFC4_IfcDocumentInformationRelationship_type, IFC4_IfcDocumentInformationRelationship_type->attributes()[0])); IFC4_IfcDocumentInformation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("DocumentRefForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesDocument_type, IFC4_IfcRelAssociatesDocument_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("DocumentRefForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesDocument_type, IFC4_IfcRelAssociatesDocument_type->attributes()[0])); IFC4_IfcDocumentReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::inverse_attribute("FillsVoids", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelFillsElement_type, IFC4_IfcRelFillsElement_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedTo", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsElements_type, IFC4_IfcRelConnectsElements_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsInterferedByElements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelInterferesElements_type, IFC4_IfcRelInterferesElements_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("InterferesElements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelInterferesElements_type, IFC4_IfcRelInterferesElements_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasProjections", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelProjectsElement_type, IFC4_IfcRelProjectsElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ReferencedInStructures", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelReferencedInSpatialStructure_type, IFC4_IfcRelReferencedInSpatialStructure_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasOpenings", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelVoidsElement_type, IFC4_IfcRelVoidsElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsConnectionRealization", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsWithRealizingElements_type, IFC4_IfcRelConnectsWithRealizingElements_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ProvidesBoundaries", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedFrom", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsElements_type, IFC4_IfcRelConnectsElements_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasCoverings", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelCoversBldgElements_type, IFC4_IfcRelCoversBldgElements_type->attributes()[0])); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new inverse_attribute("FillsVoids", inverse_attribute::set_type, 0, 1, IFC4_IfcRelFillsElement_type, IFC4_IfcRelFillsElement_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedTo", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsElements_type, IFC4_IfcRelConnectsElements_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsInterferedByElements", inverse_attribute::set_type, 0, -1, IFC4_IfcRelInterferesElements_type, IFC4_IfcRelInterferesElements_type->attributes()[1])); + attributes.push_back(new inverse_attribute("InterferesElements", inverse_attribute::set_type, 0, -1, IFC4_IfcRelInterferesElements_type, IFC4_IfcRelInterferesElements_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasProjections", inverse_attribute::set_type, 0, -1, IFC4_IfcRelProjectsElement_type, IFC4_IfcRelProjectsElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ReferencedInStructures", inverse_attribute::set_type, 0, -1, IFC4_IfcRelReferencedInSpatialStructure_type, IFC4_IfcRelReferencedInSpatialStructure_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasOpenings", inverse_attribute::set_type, 0, -1, IFC4_IfcRelVoidsElement_type, IFC4_IfcRelVoidsElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsConnectionRealization", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsWithRealizingElements_type, IFC4_IfcRelConnectsWithRealizingElements_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ProvidesBoundaries", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedFrom", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsElements_type, IFC4_IfcRelConnectsElements_type->attributes()[2])); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasCoverings", inverse_attribute::set_type, 0, -1, IFC4_IfcRelCoversBldgElements_type, IFC4_IfcRelCoversBldgElements_type->attributes()[0])); IFC4_IfcElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ExternalReferenceForResources", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ExternalReferenceForResources", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[0])); IFC4_IfcExternalReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("BoundedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("BoundedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[0])); IFC4_IfcExternalSpatialElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasTextureMaps", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcTextureMap_type, IFC4_IfcTextureMap_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasTextureMaps", inverse_attribute::set_type, 0, -1, IFC4_IfcTextureMap_type, IFC4_IfcTextureMap_type->attributes()[1])); IFC4_IfcFace_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ProjectsElements", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcRelProjectsElement_type, IFC4_IfcRelProjectsElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ProjectsElements", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcRelProjectsElement_type, IFC4_IfcRelProjectsElement_type->attributes()[1])); IFC4_IfcFeatureElementAddition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("VoidsElements", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcRelVoidsElement_type, IFC4_IfcRelVoidsElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("VoidsElements", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcRelVoidsElement_type, IFC4_IfcRelVoidsElement_type->attributes()[1])); IFC4_IfcFeatureElementSubtraction_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasSubContexts", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcGeometricRepresentationSubContext_type, IFC4_IfcGeometricRepresentationSubContext_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasCoordinateOperation", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcCoordinateOperation_type, IFC4_IfcCoordinateOperation_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasSubContexts", inverse_attribute::set_type, 0, -1, IFC4_IfcGeometricRepresentationSubContext_type, IFC4_IfcGeometricRepresentationSubContext_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasCoordinateOperation", inverse_attribute::set_type, 0, 1, IFC4_IfcCoordinateOperation_type, IFC4_IfcCoordinateOperation_type->attributes()[0])); IFC4_IfcGeometricRepresentationContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC4_IfcGrid_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("PartOfW", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("PartOfV", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfU", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasIntersections", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcVirtualGridIntersection_type, IFC4_IfcVirtualGridIntersection_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("PartOfW", inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[2])); + attributes.push_back(new inverse_attribute("PartOfV", inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfU", inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasIntersections", inverse_attribute::set_type, 0, -1, IFC4_IfcVirtualGridIntersection_type, IFC4_IfcVirtualGridIntersection_type->attributes()[0])); IFC4_IfcGridAxis_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsGroupedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToGroup_type, IFC4_IfcRelAssignsToGroup_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsGroupedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToGroup_type, IFC4_IfcRelAssignsToGroup_type->attributes()[0])); IFC4_IfcGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("LibraryInfoForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesLibrary_type, IFC4_IfcRelAssociatesLibrary_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasLibraryReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcLibraryReference_type, IFC4_IfcLibraryReference_type->attributes()[2])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToFaceSet", inverse_attribute::set_type, 1, -1, IFC4_IfcPolygonalFaceSet_type, IFC4_IfcPolygonalFaceSet_type->attributes()[1])); + IFC4_IfcIndexedPolygonalFace_type->set_inverse_attributes(attributes); + } + { + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("LibraryInfoForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesLibrary_type, IFC4_IfcRelAssociatesLibrary_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasLibraryReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcLibraryReference_type, IFC4_IfcLibraryReference_type->attributes()[2])); IFC4_IfcLibraryInformation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("LibraryRefForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesLibrary_type, IFC4_IfcRelAssociatesLibrary_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("LibraryRefForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesLibrary_type, IFC4_IfcRelAssociatesLibrary_type->attributes()[0])); IFC4_IfcLibraryReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("HasRepresentation", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcMaterialDefinitionRepresentation_type, IFC4_IfcMaterialDefinitionRepresentation_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsRelatedWith", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcMaterialRelationship_type, IFC4_IfcMaterialRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("RelatesTo", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcMaterialRelationship_type, IFC4_IfcMaterialRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("HasRepresentation", inverse_attribute::set_type, 0, 1, IFC4_IfcMaterialDefinitionRepresentation_type, IFC4_IfcMaterialDefinitionRepresentation_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsRelatedWith", inverse_attribute::set_type, 0, -1, IFC4_IfcMaterialRelationship_type, IFC4_IfcMaterialRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("RelatesTo", inverse_attribute::set_type, 0, 1, IFC4_IfcMaterialRelationship_type, IFC4_IfcMaterialRelationship_type->attributes()[0])); IFC4_IfcMaterial_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToMaterialConstituentSet", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialConstituentSet_type, IFC4_IfcMaterialConstituentSet_type->attributes()[2])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToMaterialConstituentSet", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialConstituentSet_type, IFC4_IfcMaterialConstituentSet_type->attributes()[2])); IFC4_IfcMaterialConstituent_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("AssociatedTo", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesMaterial_type, IFC4_IfcRelAssociatesMaterial_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasProperties", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcMaterialProperties_type, IFC4_IfcMaterialProperties_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("AssociatedTo", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesMaterial_type, IFC4_IfcRelAssociatesMaterial_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasProperties", inverse_attribute::set_type, 0, -1, IFC4_IfcMaterialProperties_type, IFC4_IfcMaterialProperties_type->attributes()[0])); IFC4_IfcMaterialDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToMaterialLayerSet", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialLayerSet_type, IFC4_IfcMaterialLayerSet_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToMaterialLayerSet", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialLayerSet_type, IFC4_IfcMaterialLayerSet_type->attributes()[0])); IFC4_IfcMaterialLayer_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToMaterialProfileSet", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialProfileSet_type, IFC4_IfcMaterialProfileSet_type->attributes()[2])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToMaterialProfileSet", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialProfileSet_type, IFC4_IfcMaterialProfileSet_type->attributes()[2])); IFC4_IfcMaterialProfile_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssociatedTo", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcRelAssociatesMaterial_type, IFC4_IfcRelAssociatesMaterial_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssociatedTo", inverse_attribute::set_type, 1, -1, IFC4_IfcRelAssociatesMaterial_type, IFC4_IfcRelAssociatesMaterial_type->attributes()[0])); IFC4_IfcMaterialUsageDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("IsDeclaredBy", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByObject_type, IFC4_IfcRelDefinesByObject_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Declares", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByObject_type, IFC4_IfcRelDefinesByObject_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsTypedBy", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByType_type, IFC4_IfcRelDefinesByType_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsDefinedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("IsDeclaredBy", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByObject_type, IFC4_IfcRelDefinesByObject_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Declares", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByObject_type, IFC4_IfcRelDefinesByObject_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsTypedBy", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByType_type, IFC4_IfcRelDefinesByType_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsDefinedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[0])); IFC4_IfcObject_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::inverse_attribute("HasAssignments", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssigns_type, IFC4_IfcRelAssigns_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Nests", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelNests_type, IFC4_IfcRelNests_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsNestedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelNests_type, IFC4_IfcRelNests_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasContext", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsDecomposedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAggregates_type, IFC4_IfcRelAggregates_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Decomposes", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelAggregates_type, IFC4_IfcRelAggregates_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasAssociations", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociates_type, IFC4_IfcRelAssociates_type->attributes()[0])); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new inverse_attribute("HasAssignments", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssigns_type, IFC4_IfcRelAssigns_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Nests", inverse_attribute::set_type, 0, 1, IFC4_IfcRelNests_type, IFC4_IfcRelNests_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsNestedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelNests_type, IFC4_IfcRelNests_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasContext", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsDecomposedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAggregates_type, IFC4_IfcRelAggregates_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Decomposes", inverse_attribute::set_type, 0, 1, IFC4_IfcRelAggregates_type, IFC4_IfcRelAggregates_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasAssociations", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociates_type, IFC4_IfcRelAssociates_type->attributes()[0])); IFC4_IfcObjectDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("PlacesObject", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcProduct_type, IFC4_IfcProduct_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ReferencedByPlacements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcLocalPlacement_type, IFC4_IfcLocalPlacement_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("PlacesObject", inverse_attribute::set_type, 0, -1, IFC4_IfcProduct_type, IFC4_IfcProduct_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ReferencedByPlacements", inverse_attribute::set_type, 0, -1, IFC4_IfcLocalPlacement_type, IFC4_IfcLocalPlacement_type->attributes()[0])); IFC4_IfcObjectPlacement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasFillings", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelFillsElement_type, IFC4_IfcRelFillsElement_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasFillings", inverse_attribute::set_type, 0, -1, IFC4_IfcRelFillsElement_type, IFC4_IfcRelFillsElement_type->attributes()[0])); IFC4_IfcOpeningElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("IsRelatedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcOrganizationRelationship_type, IFC4_IfcOrganizationRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("Relates", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcOrganizationRelationship_type, IFC4_IfcOrganizationRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Engages", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPersonAndOrganization_type, IFC4_IfcPersonAndOrganization_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("IsRelatedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcOrganizationRelationship_type, IFC4_IfcOrganizationRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("Relates", inverse_attribute::set_type, 0, -1, IFC4_IfcOrganizationRelationship_type, IFC4_IfcOrganizationRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Engages", inverse_attribute::set_type, 0, -1, IFC4_IfcPersonAndOrganization_type, IFC4_IfcPersonAndOrganization_type->attributes()[1])); IFC4_IfcOrganization_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("EngagedIn", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPersonAndOrganization_type, IFC4_IfcPersonAndOrganization_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("EngagedIn", inverse_attribute::set_type, 0, -1, IFC4_IfcPersonAndOrganization_type, IFC4_IfcPersonAndOrganization_type->attributes()[0])); IFC4_IfcPerson_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfComplex", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcPhysicalComplexQuantity_type, IFC4_IfcPhysicalComplexQuantity_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfComplex", inverse_attribute::set_type, 0, 1, IFC4_IfcPhysicalComplexQuantity_type, IFC4_IfcPhysicalComplexQuantity_type->attributes()[0])); IFC4_IfcPhysicalQuantity_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ContainedIn", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPortToElement_type, IFC4_IfcRelConnectsPortToElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ConnectedFrom", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPorts_type, IFC4_IfcRelConnectsPorts_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedTo", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPorts_type, IFC4_IfcRelConnectsPorts_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ContainedIn", inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPortToElement_type, IFC4_IfcRelConnectsPortToElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ConnectedFrom", inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPorts_type, IFC4_IfcRelConnectsPorts_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedTo", inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPorts_type, IFC4_IfcRelConnectsPorts_type->attributes()[0])); IFC4_IfcPort_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("IsPredecessorTo", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSequence_type, IFC4_IfcRelSequence_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsSuccessorFrom", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSequence_type, IFC4_IfcRelSequence_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("OperatesOn", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProcess_type, IFC4_IfcRelAssignsToProcess_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("IsPredecessorTo", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSequence_type, IFC4_IfcRelSequence_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsSuccessorFrom", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSequence_type, IFC4_IfcRelSequence_type->attributes()[1])); + attributes.push_back(new inverse_attribute("OperatesOn", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProcess_type, IFC4_IfcRelAssignsToProcess_type->attributes()[0])); IFC4_IfcProcess_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferencedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProduct_type, IFC4_IfcRelAssignsToProduct_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferencedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProduct_type, IFC4_IfcRelAssignsToProduct_type->attributes()[0])); IFC4_IfcProduct_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ShapeOfProduct", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcProduct_type, IFC4_IfcProduct_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasShapeAspects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ShapeOfProduct", inverse_attribute::set_type, 1, -1, IFC4_IfcProduct_type, IFC4_IfcProduct_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasShapeAspects", inverse_attribute::set_type, 0, -1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[4])); IFC4_IfcProductDefinitionShape_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasProperties", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcProfileProperties_type, IFC4_IfcProfileProperties_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasProperties", inverse_attribute::set_type, 0, -1, IFC4_IfcProfileProperties_type, IFC4_IfcProfileProperties_type->attributes()[0])); IFC4_IfcProfileDef_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::inverse_attribute("PartOfPset", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPropertySet_type, IFC4_IfcPropertySet_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("PropertyForDependance", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPropertyDependencyRelationship_type, IFC4_IfcPropertyDependencyRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("PropertyDependsOn", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPropertyDependencyRelationship_type, IFC4_IfcPropertyDependencyRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfComplex", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcComplexProperty_type, IFC4_IfcComplexProperty_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasConstraints", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcResourceConstraintRelationship_type, IFC4_IfcResourceConstraintRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasApprovals", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcResourceApprovalRelationship_type, IFC4_IfcResourceApprovalRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new inverse_attribute("PartOfPset", inverse_attribute::set_type, 0, -1, IFC4_IfcPropertySet_type, IFC4_IfcPropertySet_type->attributes()[0])); + attributes.push_back(new inverse_attribute("PropertyForDependance", inverse_attribute::set_type, 0, -1, IFC4_IfcPropertyDependencyRelationship_type, IFC4_IfcPropertyDependencyRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("PropertyDependsOn", inverse_attribute::set_type, 0, -1, IFC4_IfcPropertyDependencyRelationship_type, IFC4_IfcPropertyDependencyRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfComplex", inverse_attribute::set_type, 0, -1, IFC4_IfcComplexProperty_type, IFC4_IfcComplexProperty_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasConstraints", inverse_attribute::set_type, 0, -1, IFC4_IfcResourceConstraintRelationship_type, IFC4_IfcResourceConstraintRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasApprovals", inverse_attribute::set_type, 0, -1, IFC4_IfcResourceApprovalRelationship_type, IFC4_IfcResourceApprovalRelationship_type->attributes()[0])); IFC4_IfcProperty_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcPropertyAbstraction_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasContext", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasAssociations", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociates_type, IFC4_IfcRelAssociates_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasContext", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasAssociations", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociates_type, IFC4_IfcRelAssociates_type->attributes()[0])); IFC4_IfcPropertyDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("DefinesType", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcTypeObject_type, IFC4_IfcTypeObject_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsDefinedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByTemplate_type, IFC4_IfcRelDefinesByTemplate_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("DefinesOccurrence", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("DefinesType", inverse_attribute::set_type, 0, -1, IFC4_IfcTypeObject_type, IFC4_IfcTypeObject_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsDefinedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByTemplate_type, IFC4_IfcRelDefinesByTemplate_type->attributes()[0])); + attributes.push_back(new inverse_attribute("DefinesOccurrence", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[1])); IFC4_IfcPropertySetDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Defines", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByTemplate_type, IFC4_IfcRelDefinesByTemplate_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Defines", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByTemplate_type, IFC4_IfcRelDefinesByTemplate_type->attributes()[1])); IFC4_IfcPropertySetTemplate_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("PartOfComplexTemplate", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcComplexPropertyTemplate_type, IFC4_IfcComplexPropertyTemplate_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("PartOfPsetTemplate", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPropertySetTemplate_type, IFC4_IfcPropertySetTemplate_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("PartOfComplexTemplate", inverse_attribute::set_type, 0, -1, IFC4_IfcComplexPropertyTemplate_type, IFC4_IfcComplexPropertyTemplate_type->attributes()[2])); + attributes.push_back(new inverse_attribute("PartOfPsetTemplate", inverse_attribute::set_type, 0, -1, IFC4_IfcPropertySetTemplate_type, IFC4_IfcPropertySetTemplate_type->attributes()[2])); IFC4_IfcPropertyTemplate_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("InnerBoundaries", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary1stLevel_type, IFC4_IfcRelSpaceBoundary1stLevel_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("InnerBoundaries", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary1stLevel_type, IFC4_IfcRelSpaceBoundary1stLevel_type->attributes()[0])); IFC4_IfcRelSpaceBoundary1stLevel_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Corresponds", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelSpaceBoundary2ndLevel_type, IFC4_IfcRelSpaceBoundary2ndLevel_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Corresponds", inverse_attribute::set_type, 0, 1, IFC4_IfcRelSpaceBoundary2ndLevel_type, IFC4_IfcRelSpaceBoundary2ndLevel_type->attributes()[0])); IFC4_IfcRelSpaceBoundary2ndLevel_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("RepresentationMap", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRepresentationMap_type, IFC4_IfcRepresentationMap_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("LayerAssignments", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPresentationLayerAssignment_type, IFC4_IfcPresentationLayerAssignment_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("OfProductRepresentation", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcProductRepresentation_type, IFC4_IfcProductRepresentation_type->attributes()[2])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("RepresentationMap", inverse_attribute::set_type, 0, 1, IFC4_IfcRepresentationMap_type, IFC4_IfcRepresentationMap_type->attributes()[1])); + attributes.push_back(new inverse_attribute("LayerAssignments", inverse_attribute::set_type, 0, -1, IFC4_IfcPresentationLayerAssignment_type, IFC4_IfcPresentationLayerAssignment_type->attributes()[2])); + attributes.push_back(new inverse_attribute("OfProductRepresentation", inverse_attribute::set_type, 0, -1, IFC4_IfcProductRepresentation_type, IFC4_IfcProductRepresentation_type->attributes()[2])); IFC4_IfcRepresentation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("RepresentationsInContext", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRepresentation_type, IFC4_IfcRepresentation_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("RepresentationsInContext", inverse_attribute::set_type, 0, -1, IFC4_IfcRepresentation_type, IFC4_IfcRepresentation_type->attributes()[0])); IFC4_IfcRepresentationContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("LayerAssignment", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcPresentationLayerAssignment_type, IFC4_IfcPresentationLayerAssignment_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("StyledByItem", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcStyledItem_type, IFC4_IfcStyledItem_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("LayerAssignment", inverse_attribute::set_type, 0, 1, IFC4_IfcPresentationLayerAssignment_type, IFC4_IfcPresentationLayerAssignment_type->attributes()[2])); + attributes.push_back(new inverse_attribute("StyledByItem", inverse_attribute::set_type, 0, 1, IFC4_IfcStyledItem_type, IFC4_IfcStyledItem_type->attributes()[0])); IFC4_IfcRepresentationItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasShapeAspects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[4])); - attributes.push_back(new entity::inverse_attribute("MapUsage", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcMappedItem_type, IFC4_IfcMappedItem_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasShapeAspects", inverse_attribute::set_type, 0, -1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[4])); + attributes.push_back(new inverse_attribute("MapUsage", inverse_attribute::set_type, 0, -1, IFC4_IfcMappedItem_type, IFC4_IfcMappedItem_type->attributes()[0])); IFC4_IfcRepresentationMap_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResourceOf", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToResource_type, IFC4_IfcRelAssignsToResource_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResourceOf", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToResource_type, IFC4_IfcRelAssignsToResource_type->attributes()[0])); IFC4_IfcResource_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("OfShapeAspect", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("OfShapeAspect", inverse_attribute::set_type, 0, 1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[0])); IFC4_IfcShapeModel_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasCoverings", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelCoversSpaces_type, IFC4_IfcRelCoversSpaces_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("BoundedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasCoverings", inverse_attribute::set_type, 0, -1, IFC4_IfcRelCoversSpaces_type, IFC4_IfcRelCoversSpaces_type->attributes()[0])); + attributes.push_back(new inverse_attribute("BoundedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[0])); IFC4_IfcSpace_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ContainsElements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ServicedBySystems", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelServicesBuildings_type, IFC4_IfcRelServicesBuildings_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ReferencesElements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelReferencedInSpatialStructure_type, IFC4_IfcRelReferencedInSpatialStructure_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ContainsElements", inverse_attribute::set_type, 0, -1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ServicedBySystems", inverse_attribute::set_type, 0, -1, IFC4_IfcRelServicesBuildings_type, IFC4_IfcRelServicesBuildings_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ReferencesElements", inverse_attribute::set_type, 0, -1, IFC4_IfcRelReferencedInSpatialStructure_type, IFC4_IfcRelReferencedInSpatialStructure_type->attributes()[1])); IFC4_IfcSpatialElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedToStructuralItem", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsStructuralActivity_type, IFC4_IfcRelConnectsStructuralActivity_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedToStructuralItem", inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsStructuralActivity_type, IFC4_IfcRelConnectsStructuralActivity_type->attributes()[1])); IFC4_IfcStructuralActivity_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ConnectsStructuralMembers", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcRelConnectsStructuralMember_type, IFC4_IfcRelConnectsStructuralMember_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ConnectsStructuralMembers", inverse_attribute::set_type, 1, -1, IFC4_IfcRelConnectsStructuralMember_type, IFC4_IfcRelConnectsStructuralMember_type->attributes()[1])); IFC4_IfcStructuralConnection_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedStructuralActivity", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsStructuralActivity_type, IFC4_IfcRelConnectsStructuralActivity_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedStructuralActivity", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsStructuralActivity_type, IFC4_IfcRelConnectsStructuralActivity_type->attributes()[0])); IFC4_IfcStructuralItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("SourceOfResultGroup", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcStructuralResultGroup_type, IFC4_IfcStructuralResultGroup_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("LoadGroupFor", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcStructuralAnalysisModel_type, IFC4_IfcStructuralAnalysisModel_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("SourceOfResultGroup", inverse_attribute::set_type, 0, 1, IFC4_IfcStructuralResultGroup_type, IFC4_IfcStructuralResultGroup_type->attributes()[1])); + attributes.push_back(new inverse_attribute("LoadGroupFor", inverse_attribute::set_type, 0, -1, IFC4_IfcStructuralAnalysisModel_type, IFC4_IfcStructuralAnalysisModel_type->attributes()[2])); IFC4_IfcStructuralLoadGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ConnectedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsStructuralMember_type, IFC4_IfcRelConnectsStructuralMember_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ConnectedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsStructuralMember_type, IFC4_IfcRelConnectsStructuralMember_type->attributes()[0])); IFC4_IfcStructuralMember_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResultGroupFor", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcStructuralAnalysisModel_type, IFC4_IfcStructuralAnalysisModel_type->attributes()[3])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResultGroupFor", inverse_attribute::set_type, 0, 1, IFC4_IfcStructuralAnalysisModel_type, IFC4_IfcStructuralAnalysisModel_type->attributes()[3])); IFC4_IfcStructuralResultGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsMappedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcTextureCoordinate_type, IFC4_IfcTextureCoordinate_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("UsedInStyles", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcSurfaceStyleWithTextures_type, IFC4_IfcSurfaceStyleWithTextures_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsMappedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcTextureCoordinate_type, IFC4_IfcTextureCoordinate_type->attributes()[0])); + attributes.push_back(new inverse_attribute("UsedInStyles", inverse_attribute::set_type, 0, -1, IFC4_IfcSurfaceStyleWithTextures_type, IFC4_IfcSurfaceStyleWithTextures_type->attributes()[0])); IFC4_IfcSurfaceTexture_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ServicesBuildings", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelServicesBuildings_type, IFC4_IfcRelServicesBuildings_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ServicesBuildings", inverse_attribute::set_type, 0, 1, IFC4_IfcRelServicesBuildings_type, IFC4_IfcRelServicesBuildings_type->attributes()[0])); IFC4_IfcSystem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasColours", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcIndexedColourMap_type, IFC4_IfcIndexedColourMap_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasTextures", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcIndexedTextureMap_type, IFC4_IfcIndexedTextureMap_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasColours", inverse_attribute::set_type, 0, 1, IFC4_IfcIndexedColourMap_type, IFC4_IfcIndexedColourMap_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasTextures", inverse_attribute::set_type, 0, -1, IFC4_IfcIndexedTextureMap_type, IFC4_IfcIndexedTextureMap_type->attributes()[0])); IFC4_IfcTessellatedFaceSet_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 1, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcTimeSeries_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Types", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByType_type, IFC4_IfcRelDefinesByType_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Types", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByType_type, IFC4_IfcRelDefinesByType_type->attributes()[1])); IFC4_IfcTypeObject_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("OperatesOn", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProcess_type, IFC4_IfcRelAssignsToProcess_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("OperatesOn", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProcess_type, IFC4_IfcRelAssignsToProcess_type->attributes()[0])); IFC4_IfcTypeProcess_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferencedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProduct_type, IFC4_IfcRelAssignsToProduct_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferencedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProduct_type, IFC4_IfcRelAssignsToProduct_type->attributes()[0])); IFC4_IfcTypeProduct_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResourceOf", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToResource_type, IFC4_IfcRelAssignsToResource_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResourceOf", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToResource_type, IFC4_IfcRelAssignsToResource_type->attributes()[0])); IFC4_IfcTypeResource_type->set_inverse_attributes(attributes); } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcActionRequest_type);defs.push_back(IFC4_IfcCostItem_type);defs.push_back(IFC4_IfcCostSchedule_type);defs.push_back(IFC4_IfcPerformanceHistory_type);defs.push_back(IFC4_IfcPermit_type);defs.push_back(IFC4_IfcProjectOrder_type);defs.push_back(IFC4_IfcWorkCalendar_type);defs.push_back(IFC4_IfcWorkControl_type); + IFC4_IfcControl_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcActor_type);defs.push_back(IFC4_IfcControl_type);defs.push_back(IFC4_IfcGroup_type);defs.push_back(IFC4_IfcProcess_type);defs.push_back(IFC4_IfcProduct_type);defs.push_back(IFC4_IfcResource_type); + IFC4_IfcObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcActuator_type);defs.push_back(IFC4_IfcAlarm_type);defs.push_back(IFC4_IfcController_type);defs.push_back(IFC4_IfcFlowInstrument_type);defs.push_back(IFC4_IfcProtectiveDeviceTrippingUnit_type);defs.push_back(IFC4_IfcSensor_type);defs.push_back(IFC4_IfcUnitaryControlElement_type); + IFC4_IfcDistributionControlElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcActuatorType_type);defs.push_back(IFC4_IfcAlarmType_type);defs.push_back(IFC4_IfcControllerType_type);defs.push_back(IFC4_IfcFlowInstrumentType_type);defs.push_back(IFC4_IfcProtectiveDeviceTrippingUnitType_type);defs.push_back(IFC4_IfcSensorType_type);defs.push_back(IFC4_IfcUnitaryControlElementType_type); + IFC4_IfcDistributionControlElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcAdvancedBrep_type);defs.push_back(IFC4_IfcFacetedBrep_type); + IFC4_IfcManifoldSolidBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcAdvancedBrepWithVoids_type); + IFC4_IfcAdvancedBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcAdvancedFace_type); + IFC4_IfcFaceSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(13); + defs.push_back(IFC4_IfcAirTerminal_type);defs.push_back(IFC4_IfcAudioVisualAppliance_type);defs.push_back(IFC4_IfcCommunicationsAppliance_type);defs.push_back(IFC4_IfcElectricAppliance_type);defs.push_back(IFC4_IfcFireSuppressionTerminal_type);defs.push_back(IFC4_IfcLamp_type);defs.push_back(IFC4_IfcLightFixture_type);defs.push_back(IFC4_IfcMedicalDevice_type);defs.push_back(IFC4_IfcOutlet_type);defs.push_back(IFC4_IfcSanitaryTerminal_type);defs.push_back(IFC4_IfcSpaceHeater_type);defs.push_back(IFC4_IfcStackTerminal_type);defs.push_back(IFC4_IfcWasteTerminal_type); + IFC4_IfcFlowTerminal_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcAirTerminalBox_type);defs.push_back(IFC4_IfcDamper_type);defs.push_back(IFC4_IfcElectricDistributionBoard_type);defs.push_back(IFC4_IfcElectricTimeControl_type);defs.push_back(IFC4_IfcFlowMeter_type);defs.push_back(IFC4_IfcProtectiveDevice_type);defs.push_back(IFC4_IfcSwitchingDevice_type);defs.push_back(IFC4_IfcValve_type); + IFC4_IfcFlowController_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcAirTerminalBoxType_type);defs.push_back(IFC4_IfcDamperType_type);defs.push_back(IFC4_IfcElectricDistributionBoardType_type);defs.push_back(IFC4_IfcElectricTimeControlType_type);defs.push_back(IFC4_IfcFlowMeterType_type);defs.push_back(IFC4_IfcProtectiveDeviceType_type);defs.push_back(IFC4_IfcSwitchingDeviceType_type);defs.push_back(IFC4_IfcValveType_type); + IFC4_IfcFlowControllerType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(13); + defs.push_back(IFC4_IfcAirTerminalType_type);defs.push_back(IFC4_IfcAudioVisualApplianceType_type);defs.push_back(IFC4_IfcCommunicationsApplianceType_type);defs.push_back(IFC4_IfcElectricApplianceType_type);defs.push_back(IFC4_IfcFireSuppressionTerminalType_type);defs.push_back(IFC4_IfcLampType_type);defs.push_back(IFC4_IfcLightFixtureType_type);defs.push_back(IFC4_IfcMedicalDeviceType_type);defs.push_back(IFC4_IfcOutletType_type);defs.push_back(IFC4_IfcSanitaryTerminalType_type);defs.push_back(IFC4_IfcSpaceHeaterType_type);defs.push_back(IFC4_IfcStackTerminalType_type);defs.push_back(IFC4_IfcWasteTerminalType_type); + IFC4_IfcFlowTerminalType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(20); + defs.push_back(IFC4_IfcAirToAirHeatRecovery_type);defs.push_back(IFC4_IfcBoiler_type);defs.push_back(IFC4_IfcBurner_type);defs.push_back(IFC4_IfcChiller_type);defs.push_back(IFC4_IfcCoil_type);defs.push_back(IFC4_IfcCondenser_type);defs.push_back(IFC4_IfcCooledBeam_type);defs.push_back(IFC4_IfcCoolingTower_type);defs.push_back(IFC4_IfcElectricGenerator_type);defs.push_back(IFC4_IfcElectricMotor_type);defs.push_back(IFC4_IfcEngine_type);defs.push_back(IFC4_IfcEvaporativeCooler_type);defs.push_back(IFC4_IfcEvaporator_type);defs.push_back(IFC4_IfcHeatExchanger_type);defs.push_back(IFC4_IfcHumidifier_type);defs.push_back(IFC4_IfcMotorConnection_type);defs.push_back(IFC4_IfcSolarDevice_type);defs.push_back(IFC4_IfcTransformer_type);defs.push_back(IFC4_IfcTubeBundle_type);defs.push_back(IFC4_IfcUnitaryEquipment_type); + IFC4_IfcEnergyConversionDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(20); + defs.push_back(IFC4_IfcAirToAirHeatRecoveryType_type);defs.push_back(IFC4_IfcBoilerType_type);defs.push_back(IFC4_IfcBurnerType_type);defs.push_back(IFC4_IfcChillerType_type);defs.push_back(IFC4_IfcCoilType_type);defs.push_back(IFC4_IfcCondenserType_type);defs.push_back(IFC4_IfcCooledBeamType_type);defs.push_back(IFC4_IfcCoolingTowerType_type);defs.push_back(IFC4_IfcElectricGeneratorType_type);defs.push_back(IFC4_IfcElectricMotorType_type);defs.push_back(IFC4_IfcEngineType_type);defs.push_back(IFC4_IfcEvaporativeCoolerType_type);defs.push_back(IFC4_IfcEvaporatorType_type);defs.push_back(IFC4_IfcHeatExchangerType_type);defs.push_back(IFC4_IfcHumidifierType_type);defs.push_back(IFC4_IfcMotorConnectionType_type);defs.push_back(IFC4_IfcSolarDeviceType_type);defs.push_back(IFC4_IfcTransformerType_type);defs.push_back(IFC4_IfcTubeBundleType_type);defs.push_back(IFC4_IfcUnitaryEquipmentType_type); + IFC4_IfcEnergyConversionDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcAnnotation_type);defs.push_back(IFC4_IfcElement_type);defs.push_back(IFC4_IfcGrid_type);defs.push_back(IFC4_IfcPort_type);defs.push_back(IFC4_IfcProxy_type);defs.push_back(IFC4_IfcSpatialElement_type);defs.push_back(IFC4_IfcStructuralActivity_type);defs.push_back(IFC4_IfcStructuralItem_type); + IFC4_IfcProduct_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(25); + defs.push_back(IFC4_IfcAnnotationFillArea_type);defs.push_back(IFC4_IfcBooleanResult_type);defs.push_back(IFC4_IfcBoundingBox_type);defs.push_back(IFC4_IfcCartesianPointList_type);defs.push_back(IFC4_IfcCartesianTransformationOperator_type);defs.push_back(IFC4_IfcCompositeCurveSegment_type);defs.push_back(IFC4_IfcCsgPrimitive3D_type);defs.push_back(IFC4_IfcCurve_type);defs.push_back(IFC4_IfcDirection_type);defs.push_back(IFC4_IfcFaceBasedSurfaceModel_type);defs.push_back(IFC4_IfcFillAreaStyleHatching_type);defs.push_back(IFC4_IfcFillAreaStyleTiles_type);defs.push_back(IFC4_IfcGeometricSet_type);defs.push_back(IFC4_IfcHalfSpaceSolid_type);defs.push_back(IFC4_IfcLightSource_type);defs.push_back(IFC4_IfcPlacement_type);defs.push_back(IFC4_IfcPlanarExtent_type);defs.push_back(IFC4_IfcPoint_type);defs.push_back(IFC4_IfcSectionedSpine_type);defs.push_back(IFC4_IfcShellBasedSurfaceModel_type);defs.push_back(IFC4_IfcSolidModel_type);defs.push_back(IFC4_IfcSurface_type);defs.push_back(IFC4_IfcTessellatedItem_type);defs.push_back(IFC4_IfcTextLiteral_type);defs.push_back(IFC4_IfcVector_type); + IFC4_IfcGeometricRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC4_IfcApprovalRelationship_type);defs.push_back(IFC4_IfcCurrencyRelationship_type);defs.push_back(IFC4_IfcDocumentInformationRelationship_type);defs.push_back(IFC4_IfcExternalReferenceRelationship_type);defs.push_back(IFC4_IfcMaterialRelationship_type);defs.push_back(IFC4_IfcOrganizationRelationship_type);defs.push_back(IFC4_IfcPropertyDependencyRelationship_type);defs.push_back(IFC4_IfcResourceApprovalRelationship_type);defs.push_back(IFC4_IfcResourceConstraintRelationship_type); + IFC4_IfcResourceLevelRelationship_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcArbitraryClosedProfileDef_type);defs.push_back(IFC4_IfcArbitraryOpenProfileDef_type);defs.push_back(IFC4_IfcCompositeProfileDef_type);defs.push_back(IFC4_IfcDerivedProfileDef_type);defs.push_back(IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcArbitraryProfileDefWithVoids_type); + IFC4_IfcArbitraryClosedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcAsset_type);defs.push_back(IFC4_IfcInventory_type);defs.push_back(IFC4_IfcStructuralLoadGroup_type);defs.push_back(IFC4_IfcStructuralResultGroup_type);defs.push_back(IFC4_IfcSystem_type); + IFC4_IfcGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(11); + defs.push_back(IFC4_IfcAsymmetricIShapeProfileDef_type);defs.push_back(IFC4_IfcCShapeProfileDef_type);defs.push_back(IFC4_IfcCircleProfileDef_type);defs.push_back(IFC4_IfcEllipseProfileDef_type);defs.push_back(IFC4_IfcIShapeProfileDef_type);defs.push_back(IFC4_IfcLShapeProfileDef_type);defs.push_back(IFC4_IfcRectangleProfileDef_type);defs.push_back(IFC4_IfcTShapeProfileDef_type);defs.push_back(IFC4_IfcTrapeziumProfileDef_type);defs.push_back(IFC4_IfcUShapeProfileDef_type);defs.push_back(IFC4_IfcZShapeProfileDef_type); + IFC4_IfcParameterizedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcAxis1Placement_type);defs.push_back(IFC4_IfcAxis2Placement2D_type);defs.push_back(IFC4_IfcAxis2Placement3D_type); + IFC4_IfcPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcBSplineCurve_type);defs.push_back(IFC4_IfcCompositeCurve_type);defs.push_back(IFC4_IfcIndexedPolyCurve_type);defs.push_back(IFC4_IfcPolyline_type);defs.push_back(IFC4_IfcTrimmedCurve_type); + IFC4_IfcBoundedCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBSplineCurveWithKnots_type); + IFC4_IfcBSplineCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcBSplineSurface_type);defs.push_back(IFC4_IfcCurveBoundedPlane_type);defs.push_back(IFC4_IfcCurveBoundedSurface_type);defs.push_back(IFC4_IfcRectangularTrimmedSurface_type); + IFC4_IfcBoundedSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBSplineSurfaceWithKnots_type); + IFC4_IfcBSplineSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(21); + defs.push_back(IFC4_IfcBeam_type);defs.push_back(IFC4_IfcBuildingElementProxy_type);defs.push_back(IFC4_IfcChimney_type);defs.push_back(IFC4_IfcColumn_type);defs.push_back(IFC4_IfcCovering_type);defs.push_back(IFC4_IfcCurtainWall_type);defs.push_back(IFC4_IfcDoor_type);defs.push_back(IFC4_IfcFooting_type);defs.push_back(IFC4_IfcMember_type);defs.push_back(IFC4_IfcPile_type);defs.push_back(IFC4_IfcPlate_type);defs.push_back(IFC4_IfcRailing_type);defs.push_back(IFC4_IfcRamp_type);defs.push_back(IFC4_IfcRampFlight_type);defs.push_back(IFC4_IfcRoof_type);defs.push_back(IFC4_IfcShadingDevice_type);defs.push_back(IFC4_IfcSlab_type);defs.push_back(IFC4_IfcStair_type);defs.push_back(IFC4_IfcStairFlight_type);defs.push_back(IFC4_IfcWall_type);defs.push_back(IFC4_IfcWindow_type); + IFC4_IfcBuildingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBeamStandardCase_type); + IFC4_IfcBeam_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(21); + defs.push_back(IFC4_IfcBeamType_type);defs.push_back(IFC4_IfcBuildingElementProxyType_type);defs.push_back(IFC4_IfcChimneyType_type);defs.push_back(IFC4_IfcColumnType_type);defs.push_back(IFC4_IfcCoveringType_type);defs.push_back(IFC4_IfcCurtainWallType_type);defs.push_back(IFC4_IfcDoorType_type);defs.push_back(IFC4_IfcFootingType_type);defs.push_back(IFC4_IfcMemberType_type);defs.push_back(IFC4_IfcPileType_type);defs.push_back(IFC4_IfcPlateType_type);defs.push_back(IFC4_IfcRailingType_type);defs.push_back(IFC4_IfcRampFlightType_type);defs.push_back(IFC4_IfcRampType_type);defs.push_back(IFC4_IfcRoofType_type);defs.push_back(IFC4_IfcShadingDeviceType_type);defs.push_back(IFC4_IfcSlabType_type);defs.push_back(IFC4_IfcStairFlightType_type);defs.push_back(IFC4_IfcStairType_type);defs.push_back(IFC4_IfcWallType_type);defs.push_back(IFC4_IfcWindowType_type); + IFC4_IfcBuildingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcBlobTexture_type);defs.push_back(IFC4_IfcImageTexture_type);defs.push_back(IFC4_IfcPixelTexture_type); + IFC4_IfcSurfaceTexture_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcBlock_type);defs.push_back(IFC4_IfcRectangularPyramid_type);defs.push_back(IFC4_IfcRightCircularCone_type);defs.push_back(IFC4_IfcRightCircularCylinder_type);defs.push_back(IFC4_IfcSphere_type); + IFC4_IfcCsgPrimitive3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBooleanClippingResult_type); + IFC4_IfcBooleanResult_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBoundaryCurve_type); + IFC4_IfcCompositeCurveOnSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcBoundaryEdgeCondition_type);defs.push_back(IFC4_IfcBoundaryFaceCondition_type);defs.push_back(IFC4_IfcBoundaryNodeCondition_type); + IFC4_IfcBoundaryCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBoundaryNodeConditionWarping_type); + IFC4_IfcBoundaryNodeCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcBoundedCurve_type);defs.push_back(IFC4_IfcConic_type);defs.push_back(IFC4_IfcLine_type);defs.push_back(IFC4_IfcOffsetCurve2D_type);defs.push_back(IFC4_IfcOffsetCurve3D_type);defs.push_back(IFC4_IfcPcurve_type);defs.push_back(IFC4_IfcSurfaceCurve_type); + IFC4_IfcCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcBoundedSurface_type);defs.push_back(IFC4_IfcElementarySurface_type);defs.push_back(IFC4_IfcSweptSurface_type); + IFC4_IfcSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcBoxedHalfSpace_type);defs.push_back(IFC4_IfcPolygonalBoundedHalfSpace_type); + IFC4_IfcHalfSpaceSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcBuilding_type);defs.push_back(IFC4_IfcBuildingStorey_type);defs.push_back(IFC4_IfcSite_type);defs.push_back(IFC4_IfcSpace_type); + IFC4_IfcSpatialStructureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(10); + defs.push_back(IFC4_IfcBuildingElement_type);defs.push_back(IFC4_IfcCivilElement_type);defs.push_back(IFC4_IfcDistributionElement_type);defs.push_back(IFC4_IfcElementAssembly_type);defs.push_back(IFC4_IfcElementComponent_type);defs.push_back(IFC4_IfcFeatureElement_type);defs.push_back(IFC4_IfcFurnishingElement_type);defs.push_back(IFC4_IfcGeographicElement_type);defs.push_back(IFC4_IfcTransportElement_type);defs.push_back(IFC4_IfcVirtualElement_type); + IFC4_IfcElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcBuildingElementPart_type);defs.push_back(IFC4_IfcDiscreteAccessory_type);defs.push_back(IFC4_IfcFastener_type);defs.push_back(IFC4_IfcMechanicalFastener_type);defs.push_back(IFC4_IfcReinforcingElement_type);defs.push_back(IFC4_IfcVibrationIsolator_type); + IFC4_IfcElementComponent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcBuildingElementPartType_type);defs.push_back(IFC4_IfcDiscreteAccessoryType_type);defs.push_back(IFC4_IfcFastenerType_type);defs.push_back(IFC4_IfcMechanicalFastenerType_type);defs.push_back(IFC4_IfcReinforcingElementType_type);defs.push_back(IFC4_IfcVibrationIsolatorType_type); + IFC4_IfcElementComponentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcBuildingElementType_type);defs.push_back(IFC4_IfcCivilElementType_type);defs.push_back(IFC4_IfcDistributionElementType_type);defs.push_back(IFC4_IfcElementAssemblyType_type);defs.push_back(IFC4_IfcElementComponentType_type);defs.push_back(IFC4_IfcFurnishingElementType_type);defs.push_back(IFC4_IfcGeographicElementType_type);defs.push_back(IFC4_IfcTransportElementType_type); + IFC4_IfcElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcBuildingSystem_type);defs.push_back(IFC4_IfcDistributionSystem_type);defs.push_back(IFC4_IfcStructuralAnalysisModel_type);defs.push_back(IFC4_IfcZone_type); + IFC4_IfcSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcCableCarrierFitting_type);defs.push_back(IFC4_IfcCableFitting_type);defs.push_back(IFC4_IfcDuctFitting_type);defs.push_back(IFC4_IfcJunctionBox_type);defs.push_back(IFC4_IfcPipeFitting_type); + IFC4_IfcFlowFitting_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcCableCarrierFittingType_type);defs.push_back(IFC4_IfcCableFittingType_type);defs.push_back(IFC4_IfcDuctFittingType_type);defs.push_back(IFC4_IfcJunctionBoxType_type);defs.push_back(IFC4_IfcPipeFittingType_type); + IFC4_IfcFlowFittingType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCableCarrierSegment_type);defs.push_back(IFC4_IfcCableSegment_type);defs.push_back(IFC4_IfcDuctSegment_type);defs.push_back(IFC4_IfcPipeSegment_type); + IFC4_IfcFlowSegment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCableCarrierSegmentType_type);defs.push_back(IFC4_IfcCableSegmentType_type);defs.push_back(IFC4_IfcDuctSegmentType_type);defs.push_back(IFC4_IfcPipeSegmentType_type); + IFC4_IfcFlowSegmentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcCartesianPoint_type);defs.push_back(IFC4_IfcPointOnCurve_type);defs.push_back(IFC4_IfcPointOnSurface_type); + IFC4_IfcPoint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcCartesianPointList2D_type);defs.push_back(IFC4_IfcCartesianPointList3D_type); + IFC4_IfcCartesianPointList_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcCartesianTransformationOperator2D_type);defs.push_back(IFC4_IfcCartesianTransformationOperator3D_type); + IFC4_IfcCartesianTransformationOperator_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCartesianTransformationOperator2DnonUniform_type); + IFC4_IfcCartesianTransformationOperator2D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCartesianTransformationOperator3DnonUniform_type); + IFC4_IfcCartesianTransformationOperator3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCenterLineProfileDef_type); + IFC4_IfcArbitraryOpenProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcCircle_type);defs.push_back(IFC4_IfcEllipse_type); + IFC4_IfcConic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCircleHollowProfileDef_type); + IFC4_IfcCircleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcClassification_type);defs.push_back(IFC4_IfcDocumentInformation_type);defs.push_back(IFC4_IfcLibraryInformation_type); + IFC4_IfcExternalInformation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcClassificationReference_type);defs.push_back(IFC4_IfcDocumentReference_type);defs.push_back(IFC4_IfcExternallyDefinedHatchStyle_type);defs.push_back(IFC4_IfcExternallyDefinedSurfaceStyle_type);defs.push_back(IFC4_IfcExternallyDefinedTextFont_type);defs.push_back(IFC4_IfcLibraryReference_type); + IFC4_IfcExternalReference_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcClosedShell_type);defs.push_back(IFC4_IfcOpenShell_type); + IFC4_IfcConnectedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcColourRgb_type); + IFC4_IfcColourSpecification_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(17); + defs.push_back(IFC4_IfcColourRgbList_type);defs.push_back(IFC4_IfcColourSpecification_type);defs.push_back(IFC4_IfcCurveStyleFont_type);defs.push_back(IFC4_IfcCurveStyleFontAndScaling_type);defs.push_back(IFC4_IfcCurveStyleFontPattern_type);defs.push_back(IFC4_IfcIndexedColourMap_type);defs.push_back(IFC4_IfcPreDefinedItem_type);defs.push_back(IFC4_IfcSurfaceStyleLighting_type);defs.push_back(IFC4_IfcSurfaceStyleRefraction_type);defs.push_back(IFC4_IfcSurfaceStyleShading_type);defs.push_back(IFC4_IfcSurfaceStyleWithTextures_type);defs.push_back(IFC4_IfcSurfaceTexture_type);defs.push_back(IFC4_IfcTextStyleForDefinedFont_type);defs.push_back(IFC4_IfcTextStyleTextModel_type);defs.push_back(IFC4_IfcTextureCoordinate_type);defs.push_back(IFC4_IfcTextureVertex_type);defs.push_back(IFC4_IfcTextureVertexList_type); + IFC4_IfcPresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcColumnStandardCase_type); + IFC4_IfcColumn_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcComplexProperty_type);defs.push_back(IFC4_IfcSimpleProperty_type); + IFC4_IfcProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcComplexPropertyTemplate_type);defs.push_back(IFC4_IfcSimplePropertyTemplate_type); + IFC4_IfcPropertyTemplate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCompositeCurveOnSurface_type); + IFC4_IfcCompositeCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcCompressor_type);defs.push_back(IFC4_IfcFan_type);defs.push_back(IFC4_IfcPump_type); + IFC4_IfcFlowMovingDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcCompressorType_type);defs.push_back(IFC4_IfcFanType_type);defs.push_back(IFC4_IfcPumpType_type); + IFC4_IfcFlowMovingDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcConnectedFaceSet_type);defs.push_back(IFC4_IfcEdge_type);defs.push_back(IFC4_IfcFace_type);defs.push_back(IFC4_IfcFaceBound_type);defs.push_back(IFC4_IfcLoop_type);defs.push_back(IFC4_IfcPath_type);defs.push_back(IFC4_IfcVertex_type); + IFC4_IfcTopologicalRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcConnectionCurveGeometry_type);defs.push_back(IFC4_IfcConnectionPointGeometry_type);defs.push_back(IFC4_IfcConnectionSurfaceGeometry_type);defs.push_back(IFC4_IfcConnectionVolumeGeometry_type); + IFC4_IfcConnectionGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcConnectionPointEccentricity_type); + IFC4_IfcConnectionPointGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcConstructionEquipmentResource_type);defs.push_back(IFC4_IfcConstructionMaterialResource_type);defs.push_back(IFC4_IfcConstructionProductResource_type);defs.push_back(IFC4_IfcCrewResource_type);defs.push_back(IFC4_IfcLaborResource_type);defs.push_back(IFC4_IfcSubContractResource_type); + IFC4_IfcConstructionResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcConstructionEquipmentResourceType_type);defs.push_back(IFC4_IfcConstructionMaterialResourceType_type);defs.push_back(IFC4_IfcConstructionProductResourceType_type);defs.push_back(IFC4_IfcCrewResourceType_type);defs.push_back(IFC4_IfcLaborResourceType_type);defs.push_back(IFC4_IfcSubContractResourceType_type); + IFC4_IfcConstructionResourceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcConstructionResource_type); + IFC4_IfcResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcConstructionResourceType_type); + IFC4_IfcTypeResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcContext_type);defs.push_back(IFC4_IfcObject_type);defs.push_back(IFC4_IfcTypeObject_type); + IFC4_IfcObjectDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcContextDependentUnit_type);defs.push_back(IFC4_IfcConversionBasedUnit_type);defs.push_back(IFC4_IfcSIUnit_type); + IFC4_IfcNamedUnit_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcConversionBasedUnitWithOffset_type); + IFC4_IfcConversionBasedUnit_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCostValue_type); + IFC4_IfcAppliedValue_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCsgSolid_type);defs.push_back(IFC4_IfcManifoldSolidBrep_type);defs.push_back(IFC4_IfcSweptAreaSolid_type);defs.push_back(IFC4_IfcSweptDiskSolid_type); + IFC4_IfcSolidModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCurveStyle_type);defs.push_back(IFC4_IfcFillAreaStyle_type);defs.push_back(IFC4_IfcSurfaceStyle_type);defs.push_back(IFC4_IfcTextStyle_type); + IFC4_IfcPresentationStyle_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCylindricalSurface_type);defs.push_back(IFC4_IfcPlane_type);defs.push_back(IFC4_IfcSphericalSurface_type);defs.push_back(IFC4_IfcToroidalSurface_type); + IFC4_IfcElementarySurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC4_IfcDistributionChamberElement_type);defs.push_back(IFC4_IfcEnergyConversionDevice_type);defs.push_back(IFC4_IfcFlowController_type);defs.push_back(IFC4_IfcFlowFitting_type);defs.push_back(IFC4_IfcFlowMovingDevice_type);defs.push_back(IFC4_IfcFlowSegment_type);defs.push_back(IFC4_IfcFlowStorageDevice_type);defs.push_back(IFC4_IfcFlowTerminal_type);defs.push_back(IFC4_IfcFlowTreatmentDevice_type); + IFC4_IfcDistributionFlowElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC4_IfcDistributionChamberElementType_type);defs.push_back(IFC4_IfcEnergyConversionDeviceType_type);defs.push_back(IFC4_IfcFlowControllerType_type);defs.push_back(IFC4_IfcFlowFittingType_type);defs.push_back(IFC4_IfcFlowMovingDeviceType_type);defs.push_back(IFC4_IfcFlowSegmentType_type);defs.push_back(IFC4_IfcFlowStorageDeviceType_type);defs.push_back(IFC4_IfcFlowTerminalType_type);defs.push_back(IFC4_IfcFlowTreatmentDeviceType_type); + IFC4_IfcDistributionFlowElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDistributionCircuit_type); + IFC4_IfcDistributionSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcDistributionControlElement_type);defs.push_back(IFC4_IfcDistributionFlowElement_type); + IFC4_IfcDistributionElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcDistributionControlElementType_type);defs.push_back(IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcDistributionElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDistributionPort_type); + IFC4_IfcPort_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcDoorLiningProperties_type);defs.push_back(IFC4_IfcDoorPanelProperties_type);defs.push_back(IFC4_IfcPermeableCoveringProperties_type);defs.push_back(IFC4_IfcReinforcementDefinitionProperties_type);defs.push_back(IFC4_IfcWindowLiningProperties_type);defs.push_back(IFC4_IfcWindowPanelProperties_type); + IFC4_IfcPreDefinedPropertySet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDoorStandardCase_type); + IFC4_IfcDoor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcDoorStyle_type);defs.push_back(IFC4_IfcElementType_type);defs.push_back(IFC4_IfcSpatialElementType_type);defs.push_back(IFC4_IfcWindowStyle_type); + IFC4_IfcTypeProduct_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDraughtingPreDefinedColour_type); + IFC4_IfcPreDefinedColour_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDraughtingPreDefinedCurveFont_type); + IFC4_IfcPreDefinedCurveFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcDuctSilencer_type);defs.push_back(IFC4_IfcFilter_type);defs.push_back(IFC4_IfcInterceptor_type); + IFC4_IfcFlowTreatmentDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcDuctSilencerType_type);defs.push_back(IFC4_IfcFilterType_type);defs.push_back(IFC4_IfcInterceptorType_type); + IFC4_IfcFlowTreatmentDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcEdgeCurve_type);defs.push_back(IFC4_IfcOrientedEdge_type);defs.push_back(IFC4_IfcSubedge_type); + IFC4_IfcEdge_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcEdgeLoop_type);defs.push_back(IFC4_IfcPolyLoop_type);defs.push_back(IFC4_IfcVertexLoop_type); + IFC4_IfcLoop_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcElectricFlowStorageDevice_type);defs.push_back(IFC4_IfcTank_type); + IFC4_IfcFlowStorageDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcElectricFlowStorageDeviceType_type);defs.push_back(IFC4_IfcTankType_type); + IFC4_IfcFlowStorageDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcElementQuantity_type); + IFC4_IfcQuantitySet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcEvent_type);defs.push_back(IFC4_IfcProcedure_type);defs.push_back(IFC4_IfcTask_type); + IFC4_IfcProcess_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcEventTime_type);defs.push_back(IFC4_IfcLagTime_type);defs.push_back(IFC4_IfcResourceTime_type);defs.push_back(IFC4_IfcTaskTime_type);defs.push_back(IFC4_IfcWorkTime_type); + IFC4_IfcSchedulingTime_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcEventType_type);defs.push_back(IFC4_IfcProcedureType_type);defs.push_back(IFC4_IfcTaskType_type); + IFC4_IfcTypeProcess_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcExtendedProperties_type);defs.push_back(IFC4_IfcPreDefinedProperties_type);defs.push_back(IFC4_IfcProperty_type);defs.push_back(IFC4_IfcPropertyEnumeration_type); + IFC4_IfcPropertyAbstraction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcExternalSpatialElement_type); + IFC4_IfcExternalSpatialStructureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcExternalSpatialStructureElement_type);defs.push_back(IFC4_IfcSpatialStructureElement_type);defs.push_back(IFC4_IfcSpatialZone_type); + IFC4_IfcSpatialElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcExtrudedAreaSolid_type);defs.push_back(IFC4_IfcFixedReferenceSweptAreaSolid_type);defs.push_back(IFC4_IfcRevolvedAreaSolid_type);defs.push_back(IFC4_IfcSurfaceCurveSweptAreaSolid_type); + IFC4_IfcSweptAreaSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcExtrudedAreaSolidTapered_type); + IFC4_IfcExtrudedAreaSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcFaceOuterBound_type); + IFC4_IfcFaceBound_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcFaceSurface_type); + IFC4_IfcFace_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcFacetedBrepWithVoids_type); + IFC4_IfcFacetedBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcFailureConnectionCondition_type);defs.push_back(IFC4_IfcSlippageConnectionCondition_type); + IFC4_IfcStructuralConnectionCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcFeatureElementAddition_type);defs.push_back(IFC4_IfcFeatureElementSubtraction_type);defs.push_back(IFC4_IfcSurfaceFeature_type); + IFC4_IfcFeatureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcFurniture_type);defs.push_back(IFC4_IfcSystemFurnitureElement_type); + IFC4_IfcFurnishingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcFurnitureType_type);defs.push_back(IFC4_IfcSystemFurnitureElementType_type); + IFC4_IfcFurnishingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcGeometricCurveSet_type); + IFC4_IfcGeometricSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcGeometricRepresentationContext_type); + IFC4_IfcRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcGeometricRepresentationItem_type);defs.push_back(IFC4_IfcMappedItem_type);defs.push_back(IFC4_IfcStyledItem_type);defs.push_back(IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcGeometricRepresentationSubContext_type); + IFC4_IfcGeometricRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcGridPlacement_type);defs.push_back(IFC4_IfcLocalPlacement_type); + IFC4_IfcObjectPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcIndexedPolygonalFace_type);defs.push_back(IFC4_IfcTessellatedFaceSet_type); + IFC4_IfcTessellatedItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcIndexedPolygonalFaceWithVoids_type); + IFC4_IfcIndexedPolygonalFace_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcIndexedTextureMap_type);defs.push_back(IFC4_IfcTextureCoordinateGenerator_type);defs.push_back(IFC4_IfcTextureMap_type); + IFC4_IfcTextureCoordinate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcIndexedTriangleTextureMap_type); + IFC4_IfcIndexedTextureMap_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcIntersectionCurve_type);defs.push_back(IFC4_IfcSeamCurve_type); + IFC4_IfcSurfaceCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcIrregularTimeSeries_type);defs.push_back(IFC4_IfcRegularTimeSeries_type); + IFC4_IfcTimeSeries_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcLightSourceAmbient_type);defs.push_back(IFC4_IfcLightSourceDirectional_type);defs.push_back(IFC4_IfcLightSourceGoniometric_type);defs.push_back(IFC4_IfcLightSourcePositional_type); + IFC4_IfcLightSource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcLightSourceSpot_type); + IFC4_IfcLightSourcePositional_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMapConversion_type); + IFC4_IfcCoordinateOperation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcMaterial_type);defs.push_back(IFC4_IfcMaterialConstituent_type);defs.push_back(IFC4_IfcMaterialConstituentSet_type);defs.push_back(IFC4_IfcMaterialLayer_type);defs.push_back(IFC4_IfcMaterialLayerSet_type);defs.push_back(IFC4_IfcMaterialProfile_type);defs.push_back(IFC4_IfcMaterialProfileSet_type); + IFC4_IfcMaterialDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcMaterialDefinitionRepresentation_type);defs.push_back(IFC4_IfcProductDefinitionShape_type); + IFC4_IfcProductRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcMaterialLayerSetUsage_type);defs.push_back(IFC4_IfcMaterialProfileSetUsage_type); + IFC4_IfcMaterialUsageDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMaterialLayerWithOffsets_type); + IFC4_IfcMaterialLayer_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMaterialProfileSetUsageTapering_type); + IFC4_IfcMaterialProfileSetUsage_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMaterialProfileWithOffsets_type); + IFC4_IfcMaterialProfile_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcMaterialProperties_type);defs.push_back(IFC4_IfcProfileProperties_type); + IFC4_IfcExtendedProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMemberStandardCase_type); + IFC4_IfcMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcMetric_type);defs.push_back(IFC4_IfcObjective_type); + IFC4_IfcConstraint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMirroredProfileDef_type); + IFC4_IfcDerivedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcObjectDefinition_type);defs.push_back(IFC4_IfcPropertyDefinition_type);defs.push_back(IFC4_IfcRelationship_type); + IFC4_IfcRoot_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcOccupant_type); + IFC4_IfcActor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcOpeningElement_type);defs.push_back(IFC4_IfcVoidingFeature_type); + IFC4_IfcFeatureElementSubtraction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcOpeningStandardCase_type); + IFC4_IfcOpeningElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcOuterBoundaryCurve_type); + IFC4_IfcBoundaryCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPhysicalComplexQuantity_type);defs.push_back(IFC4_IfcPhysicalSimpleQuantity_type); + IFC4_IfcPhysicalQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcPlanarBox_type); + IFC4_IfcPlanarExtent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcPlateStandardCase_type); + IFC4_IfcPlate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPolygonalFaceSet_type);defs.push_back(IFC4_IfcTriangulatedFaceSet_type); + IFC4_IfcTessellatedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPostalAddress_type);defs.push_back(IFC4_IfcTelecomAddress_type); + IFC4_IfcAddress_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcPreDefinedColour_type);defs.push_back(IFC4_IfcPreDefinedCurveFont_type);defs.push_back(IFC4_IfcPreDefinedTextFont_type); + IFC4_IfcPreDefinedItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcPreDefinedPropertySet_type);defs.push_back(IFC4_IfcPropertySet_type);defs.push_back(IFC4_IfcQuantitySet_type); + IFC4_IfcPropertySetDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcPresentationLayerWithStyle_type); + IFC4_IfcPresentationLayerAssignment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcProject_type);defs.push_back(IFC4_IfcProjectLibrary_type); + IFC4_IfcContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcProjectedCRS_type); + IFC4_IfcCoordinateReferenceSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcProjectionElement_type); + IFC4_IfcFeatureElementAddition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcPropertyBoundedValue_type);defs.push_back(IFC4_IfcPropertyEnumeratedValue_type);defs.push_back(IFC4_IfcPropertyListValue_type);defs.push_back(IFC4_IfcPropertyReferenceValue_type);defs.push_back(IFC4_IfcPropertySingleValue_type);defs.push_back(IFC4_IfcPropertyTableValue_type); + IFC4_IfcSimpleProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPropertySetDefinition_type);defs.push_back(IFC4_IfcPropertyTemplateDefinition_type); + IFC4_IfcPropertyDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPropertySetTemplate_type);defs.push_back(IFC4_IfcPropertyTemplate_type); + IFC4_IfcPropertyTemplateDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcQuantityArea_type);defs.push_back(IFC4_IfcQuantityCount_type);defs.push_back(IFC4_IfcQuantityLength_type);defs.push_back(IFC4_IfcQuantityTime_type);defs.push_back(IFC4_IfcQuantityVolume_type);defs.push_back(IFC4_IfcQuantityWeight_type); + IFC4_IfcPhysicalSimpleQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRationalBSplineCurveWithKnots_type); + IFC4_IfcBSplineCurveWithKnots_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRationalBSplineSurfaceWithKnots_type); + IFC4_IfcBSplineSurfaceWithKnots_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcRectangleHollowProfileDef_type);defs.push_back(IFC4_IfcRoundedRectangleProfileDef_type); + IFC4_IfcRectangleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcReinforcementBarProperties_type);defs.push_back(IFC4_IfcSectionProperties_type);defs.push_back(IFC4_IfcSectionReinforcementProperties_type); + IFC4_IfcPreDefinedProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcReinforcingBar_type);defs.push_back(IFC4_IfcReinforcingMesh_type);defs.push_back(IFC4_IfcTendon_type);defs.push_back(IFC4_IfcTendonAnchor_type); + IFC4_IfcReinforcingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcReinforcingBarType_type);defs.push_back(IFC4_IfcReinforcingMeshType_type);defs.push_back(IFC4_IfcTendonAnchorType_type);defs.push_back(IFC4_IfcTendonType_type); + IFC4_IfcReinforcingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcRelAggregates_type);defs.push_back(IFC4_IfcRelNests_type);defs.push_back(IFC4_IfcRelProjectsElement_type);defs.push_back(IFC4_IfcRelVoidsElement_type); + IFC4_IfcRelDecomposes_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcRelAssigns_type);defs.push_back(IFC4_IfcRelAssociates_type);defs.push_back(IFC4_IfcRelConnects_type);defs.push_back(IFC4_IfcRelDeclares_type);defs.push_back(IFC4_IfcRelDecomposes_type);defs.push_back(IFC4_IfcRelDefines_type); + IFC4_IfcRelationship_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcRelAssignsToActor_type);defs.push_back(IFC4_IfcRelAssignsToControl_type);defs.push_back(IFC4_IfcRelAssignsToGroup_type);defs.push_back(IFC4_IfcRelAssignsToProcess_type);defs.push_back(IFC4_IfcRelAssignsToProduct_type);defs.push_back(IFC4_IfcRelAssignsToResource_type); + IFC4_IfcRelAssigns_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRelAssignsToGroupByFactor_type); + IFC4_IfcRelAssignsToGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcRelAssociatesApproval_type);defs.push_back(IFC4_IfcRelAssociatesClassification_type);defs.push_back(IFC4_IfcRelAssociatesConstraint_type);defs.push_back(IFC4_IfcRelAssociatesDocument_type);defs.push_back(IFC4_IfcRelAssociatesLibrary_type);defs.push_back(IFC4_IfcRelAssociatesMaterial_type); + IFC4_IfcRelAssociates_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(15); + defs.push_back(IFC4_IfcRelConnectsElements_type);defs.push_back(IFC4_IfcRelConnectsPortToElement_type);defs.push_back(IFC4_IfcRelConnectsPorts_type);defs.push_back(IFC4_IfcRelConnectsStructuralActivity_type);defs.push_back(IFC4_IfcRelConnectsStructuralMember_type);defs.push_back(IFC4_IfcRelContainedInSpatialStructure_type);defs.push_back(IFC4_IfcRelCoversBldgElements_type);defs.push_back(IFC4_IfcRelCoversSpaces_type);defs.push_back(IFC4_IfcRelFillsElement_type);defs.push_back(IFC4_IfcRelFlowControlElements_type);defs.push_back(IFC4_IfcRelInterferesElements_type);defs.push_back(IFC4_IfcRelReferencedInSpatialStructure_type);defs.push_back(IFC4_IfcRelSequence_type);defs.push_back(IFC4_IfcRelServicesBuildings_type);defs.push_back(IFC4_IfcRelSpaceBoundary_type); + IFC4_IfcRelConnects_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcRelConnectsPathElements_type);defs.push_back(IFC4_IfcRelConnectsWithRealizingElements_type); + IFC4_IfcRelConnectsElements_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRelConnectsWithEccentricity_type); + IFC4_IfcRelConnectsStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcRelDefinesByObject_type);defs.push_back(IFC4_IfcRelDefinesByProperties_type);defs.push_back(IFC4_IfcRelDefinesByTemplate_type);defs.push_back(IFC4_IfcRelDefinesByType_type); + IFC4_IfcRelDefines_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRelSpaceBoundary1stLevel_type); + IFC4_IfcRelSpaceBoundary_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRelSpaceBoundary2ndLevel_type); + IFC4_IfcRelSpaceBoundary1stLevel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcReparametrisedCompositeCurveSegment_type); + IFC4_IfcCompositeCurveSegment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRevolvedAreaSolidTapered_type); + IFC4_IfcRevolvedAreaSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcShapeModel_type);defs.push_back(IFC4_IfcStyleModel_type); + IFC4_IfcRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcShapeRepresentation_type);defs.push_back(IFC4_IfcTopologyRepresentation_type); + IFC4_IfcShapeModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcSlabElementedCase_type);defs.push_back(IFC4_IfcSlabStandardCase_type); + IFC4_IfcSlab_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcSpaceType_type); + IFC4_IfcSpatialStructureElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcSpatialStructureElementType_type);defs.push_back(IFC4_IfcSpatialZoneType_type); + IFC4_IfcSpatialElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralAction_type);defs.push_back(IFC4_IfcStructuralReaction_type); + IFC4_IfcStructuralActivity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralConnection_type);defs.push_back(IFC4_IfcStructuralMember_type); + IFC4_IfcStructuralItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcStructuralCurveAction_type);defs.push_back(IFC4_IfcStructuralPointAction_type);defs.push_back(IFC4_IfcStructuralSurfaceAction_type); + IFC4_IfcStructuralAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcStructuralCurveConnection_type);defs.push_back(IFC4_IfcStructuralPointConnection_type);defs.push_back(IFC4_IfcStructuralSurfaceConnection_type); + IFC4_IfcStructuralConnection_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralCurveMember_type);defs.push_back(IFC4_IfcStructuralSurfaceMember_type); + IFC4_IfcStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralCurveMemberVarying_type); + IFC4_IfcStructuralCurveMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcStructuralCurveReaction_type);defs.push_back(IFC4_IfcStructuralPointReaction_type);defs.push_back(IFC4_IfcStructuralSurfaceReaction_type); + IFC4_IfcStructuralReaction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralLinearAction_type); + IFC4_IfcStructuralCurveAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralLoadCase_type); + IFC4_IfcStructuralLoadGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralLoadConfiguration_type);defs.push_back(IFC4_IfcStructuralLoadOrResult_type); + IFC4_IfcStructuralLoad_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcStructuralLoadLinearForce_type);defs.push_back(IFC4_IfcStructuralLoadPlanarForce_type);defs.push_back(IFC4_IfcStructuralLoadSingleDisplacement_type);defs.push_back(IFC4_IfcStructuralLoadSingleForce_type);defs.push_back(IFC4_IfcStructuralLoadTemperature_type); + IFC4_IfcStructuralLoadStatic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralLoadSingleDisplacementDistortion_type); + IFC4_IfcStructuralLoadSingleDisplacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralLoadSingleForceWarping_type); + IFC4_IfcStructuralLoadSingleForce_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralLoadStatic_type);defs.push_back(IFC4_IfcSurfaceReinforcementArea_type); + IFC4_IfcStructuralLoadOrResult_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralPlanarAction_type); + IFC4_IfcStructuralSurfaceAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralSurfaceMemberVarying_type); + IFC4_IfcStructuralSurfaceMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStyledRepresentation_type); + IFC4_IfcStyleModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcSurfaceOfLinearExtrusion_type);defs.push_back(IFC4_IfcSurfaceOfRevolution_type); + IFC4_IfcSweptSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcSurfaceStyleRendering_type); + IFC4_IfcSurfaceStyleShading_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcSweptDiskSolidPolygonal_type); + IFC4_IfcSweptDiskSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcTaskTimeRecurring_type); + IFC4_IfcTaskTime_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcTextLiteralWithExtent_type); + IFC4_IfcTextLiteral_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcTextStyleFontModel_type); + IFC4_IfcPreDefinedTextFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcTypeProcess_type);defs.push_back(IFC4_IfcTypeProduct_type);defs.push_back(IFC4_IfcTypeResource_type); + IFC4_IfcTypeObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcVertexPoint_type); + IFC4_IfcVertex_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcWallElementedCase_type);defs.push_back(IFC4_IfcWallStandardCase_type); + IFC4_IfcWall_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcWindowStandardCase_type); + IFC4_IfcWindow_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcWorkPlan_type);defs.push_back(IFC4_IfcWorkSchedule_type); + IFC4_IfcWorkControl_type->set_subtypes(defs); + } - std::vector declarations; declarations.reserve(1165); + std::vector declarations; declarations.reserve(1173); declarations.push_back(IFC4_IfcAbsorbedDoseMeasure_type); declarations.push_back(IFC4_IfcAccelerationMeasure_type); declarations.push_back(IFC4_IfcActionRequestTypeEnum_type); @@ -12753,6 +13896,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcPositiveLengthMeasure_type); declarations.push_back(IFC4_IfcPositivePlaneAngleMeasure_type); declarations.push_back(IFC4_IfcPowerMeasure_type); + declarations.push_back(IFC4_IfcPreferredSurfaceCurveRepresentation_type); declarations.push_back(IFC4_IfcPresentableText_type); declarations.push_back(IFC4_IfcPressureMeasure_type); declarations.push_back(IFC4_IfcProcedureTypeEnum_type); @@ -12810,7 +13954,6 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcStairFlightTypeEnum_type); declarations.push_back(IFC4_IfcStairTypeEnum_type); declarations.push_back(IFC4_IfcStateEnum_type); - declarations.push_back(IFC4_IfcStrippedOptional_type); declarations.push_back(IFC4_IfcStructuralCurveActivityTypeEnum_type); declarations.push_back(IFC4_IfcStructuralCurveMemberTypeEnum_type); declarations.push_back(IFC4_IfcStructuralSurfaceActivityTypeEnum_type); @@ -13223,6 +14366,8 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcGeographicElementType_type); declarations.push_back(IFC4_IfcGeometricCurveSet_type); declarations.push_back(IFC4_IfcIShapeProfileDef_type); + declarations.push_back(IFC4_IfcIndexedPolygonalFace_type); + declarations.push_back(IFC4_IfcIndexedPolygonalFaceWithVoids_type); declarations.push_back(IFC4_IfcLShapeProfileDef_type); declarations.push_back(IFC4_IfcLaborResourceType_type); declarations.push_back(IFC4_IfcLine_type); @@ -13315,6 +14460,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcSpatialZone_type); declarations.push_back(IFC4_IfcSpatialZoneType_type); declarations.push_back(IFC4_IfcSphere_type); + declarations.push_back(IFC4_IfcSphericalSurface_type); declarations.push_back(IFC4_IfcStructuralActivity_type); declarations.push_back(IFC4_IfcStructuralItem_type); declarations.push_back(IFC4_IfcStructuralMember_type); @@ -13323,6 +14469,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcStructuralSurfaceMemberVarying_type); declarations.push_back(IFC4_IfcStructuralSurfaceReaction_type); declarations.push_back(IFC4_IfcSubContractResourceType_type); + declarations.push_back(IFC4_IfcSurfaceCurve_type); declarations.push_back(IFC4_IfcSurfaceCurveSweptAreaSolid_type); declarations.push_back(IFC4_IfcSurfaceOfLinearExtrusion_type); declarations.push_back(IFC4_IfcSurfaceOfRevolution_type); @@ -13330,6 +14477,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcTask_type); declarations.push_back(IFC4_IfcTaskType_type); declarations.push_back(IFC4_IfcTessellatedFaceSet_type); + declarations.push_back(IFC4_IfcToroidalSurface_type); declarations.push_back(IFC4_IfcTransportElementType_type); declarations.push_back(IFC4_IfcTriangulatedFaceSet_type); declarations.push_back(IFC4_IfcWindowLiningProperties_type); @@ -13429,6 +14577,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcHumidifierType_type); declarations.push_back(IFC4_IfcIndexedPolyCurve_type); declarations.push_back(IFC4_IfcInterceptorType_type); + declarations.push_back(IFC4_IfcIntersectionCurve_type); declarations.push_back(IFC4_IfcInventory_type); declarations.push_back(IFC4_IfcJunctionBoxType_type); declarations.push_back(IFC4_IfcLaborResource_type); @@ -13450,6 +14599,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcPipeFittingType_type); declarations.push_back(IFC4_IfcPipeSegmentType_type); declarations.push_back(IFC4_IfcPlateType_type); + declarations.push_back(IFC4_IfcPolygonalFaceSet_type); declarations.push_back(IFC4_IfcPolyline_type); declarations.push_back(IFC4_IfcPort_type); declarations.push_back(IFC4_IfcProcedure_type); @@ -13468,6 +14618,7 @@ IfcParse::schema_definition* IFC4_populate_schema() { declarations.push_back(IFC4_IfcRelAggregates_type); declarations.push_back(IFC4_IfcRoofType_type); declarations.push_back(IFC4_IfcSanitaryTerminalType_type); + declarations.push_back(IFC4_IfcSeamCurve_type); declarations.push_back(IFC4_IfcShadingDeviceType_type); declarations.push_back(IFC4_IfcSite_type); declarations.push_back(IFC4_IfcSlabType_type); diff --git a/src/ifcparse/Ifc4.cpp b/src/ifcparse/Ifc4.cpp index dfb2a1436c..30f4f2648c 100644 --- a/src/ifcparse/Ifc4.cpp +++ b/src/ifcparse/Ifc4.cpp @@ -356,10 +356,13 @@ extern entity* IFC4_IfcIShapeProfileDef_type; extern entity* IFC4_IfcImageTexture_type; extern entity* IFC4_IfcIndexedColourMap_type; extern entity* IFC4_IfcIndexedPolyCurve_type; +extern entity* IFC4_IfcIndexedPolygonalFace_type; +extern entity* IFC4_IfcIndexedPolygonalFaceWithVoids_type; extern entity* IFC4_IfcIndexedTextureMap_type; extern entity* IFC4_IfcIndexedTriangleTextureMap_type; extern entity* IFC4_IfcInterceptor_type; extern entity* IFC4_IfcInterceptorType_type; +extern entity* IFC4_IfcIntersectionCurve_type; extern entity* IFC4_IfcInventory_type; extern entity* IFC4_IfcIrregularTimeSeries_type; extern entity* IFC4_IfcIrregularTimeSeriesValue_type; @@ -469,6 +472,7 @@ extern entity* IFC4_IfcPointOnCurve_type; extern entity* IFC4_IfcPointOnSurface_type; extern entity* IFC4_IfcPolyLoop_type; extern entity* IFC4_IfcPolygonalBoundedHalfSpace_type; +extern entity* IFC4_IfcPolygonalFaceSet_type; extern entity* IFC4_IfcPolyline_type; extern entity* IFC4_IfcPort_type; extern entity* IFC4_IfcPostalAddress_type; @@ -619,6 +623,7 @@ extern entity* IFC4_IfcSIUnit_type; extern entity* IFC4_IfcSanitaryTerminal_type; extern entity* IFC4_IfcSanitaryTerminalType_type; extern entity* IFC4_IfcSchedulingTime_type; +extern entity* IFC4_IfcSeamCurve_type; extern entity* IFC4_IfcSectionProperties_type; extern entity* IFC4_IfcSectionReinforcementProperties_type; extern entity* IFC4_IfcSectionedSpine_type; @@ -652,6 +657,7 @@ extern entity* IFC4_IfcSpatialStructureElementType_type; extern entity* IFC4_IfcSpatialZone_type; extern entity* IFC4_IfcSpatialZoneType_type; extern entity* IFC4_IfcSphere_type; +extern entity* IFC4_IfcSphericalSurface_type; extern entity* IFC4_IfcStackTerminal_type; extern entity* IFC4_IfcStackTerminalType_type; extern entity* IFC4_IfcStair_type; @@ -702,6 +708,7 @@ extern entity* IFC4_IfcSubContractResource_type; extern entity* IFC4_IfcSubContractResourceType_type; extern entity* IFC4_IfcSubedge_type; extern entity* IFC4_IfcSurface_type; +extern entity* IFC4_IfcSurfaceCurve_type; extern entity* IFC4_IfcSurfaceCurveSweptAreaSolid_type; extern entity* IFC4_IfcSurfaceFeature_type; extern entity* IFC4_IfcSurfaceOfLinearExtrusion_type; @@ -756,6 +763,7 @@ extern entity* IFC4_IfcTimeSeries_type; extern entity* IFC4_IfcTimeSeriesValue_type; extern entity* IFC4_IfcTopologicalRepresentationItem_type; extern entity* IFC4_IfcTopologyRepresentation_type; +extern entity* IFC4_IfcToroidalSurface_type; extern entity* IFC4_IfcTransformer_type; extern entity* IFC4_IfcTransformerType_type; extern entity* IFC4_IfcTransportElement_type; @@ -912,7 +920,6 @@ extern type_declaration* IFC4_IfcSoundPressureMeasure_type; extern type_declaration* IFC4_IfcSpecificHeatCapacityMeasure_type; extern type_declaration* IFC4_IfcSpecularExponent_type; extern type_declaration* IFC4_IfcSpecularRoughness_type; -extern type_declaration* IFC4_IfcStrippedOptional_type; extern type_declaration* IFC4_IfcTemperatureGradientMeasure_type; extern type_declaration* IFC4_IfcTemperatureRateOfChangeMeasure_type; extern type_declaration* IFC4_IfcText_type; @@ -1307,8 +1314,8 @@ Ifc4::IfcBuildingElementPartTypeEnum::Value Ifc4::IfcBuildingElementPartTypeEnum } const char* Ifc4::IfcBuildingElementProxyTypeEnum::ToString(Value v) { - if ( v < 0 || v >= 6 ) throw IfcException("Unable to find find keyword in schema"); - const char* names[] = { "COMPLEX", "ELEMENT", "PARTIAL", "PROVISIONFORVOID", "USERDEFINED", "NOTDEFINED" }; + if ( v < 0 || v >= 7 ) throw IfcException("Unable to find find keyword in schema"); + const char* names[] = { "COMPLEX", "ELEMENT", "PARTIAL", "PROVISIONFORVOID", "PROVISIONFORSPACE", "USERDEFINED", "NOTDEFINED" }; return names[v]; } @@ -1317,6 +1324,7 @@ Ifc4::IfcBuildingElementProxyTypeEnum::Value Ifc4::IfcBuildingElementProxyTypeEn if (s == "ELEMENT") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_ELEMENT; if (s == "PARTIAL") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_PARTIAL; if (s == "PROVISIONFORVOID") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_PROVISIONFORVOID; + if (s == "PROVISIONFORSPACE") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_PROVISIONFORSPACE; if (s == "USERDEFINED") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_USERDEFINED; if (s == "NOTDEFINED") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_NOTDEFINED; throw IfcException("Unable to find find keyword in schema"); @@ -2447,7 +2455,7 @@ Ifc4::IfcEventTypeEnum::Value Ifc4::IfcEventTypeEnum::FromString(const std::stri const char* Ifc4::IfcExternalSpatialElementTypeEnum::ToString(Value v) { if ( v < 0 || v >= 6 ) throw IfcException("Unable to find find keyword in schema"); - const char* names[] = { "EXTERNAL", "EXTERNAL_EARTH", "EXTERNAL_WATER", "EXTERNAL_FIRE", "USERDEFINED", "NOTDEFIEND" }; + const char* names[] = { "EXTERNAL", "EXTERNAL_EARTH", "EXTERNAL_WATER", "EXTERNAL_FIRE", "USERDEFINED", "NOTDEFINED" }; return names[v]; } @@ -2457,7 +2465,7 @@ Ifc4::IfcExternalSpatialElementTypeEnum::Value Ifc4::IfcExternalSpatialElementTy if (s == "EXTERNAL_WATER") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_EXTERNAL_WATER; if (s == "EXTERNAL_FIRE") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_EXTERNAL_FIRE; if (s == "USERDEFINED") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_USERDEFINED; - if (s == "NOTDEFIEND") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_NOTDEFIEND; + if (s == "NOTDEFINED") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_NOTDEFINED; throw IfcException("Unable to find find keyword in schema"); } @@ -3254,6 +3262,19 @@ Ifc4::IfcPlateTypeEnum::Value Ifc4::IfcPlateTypeEnum::FromString(const std::stri throw IfcException("Unable to find find keyword in schema"); } +const char* Ifc4::IfcPreferredSurfaceCurveRepresentation::ToString(Value v) { + if ( v < 0 || v >= 3 ) throw IfcException("Unable to find find keyword in schema"); + const char* names[] = { "CURVE3D", "PCURVE_S1", "PCURVE_S2" }; + return names[v]; +} + +Ifc4::IfcPreferredSurfaceCurveRepresentation::Value Ifc4::IfcPreferredSurfaceCurveRepresentation::FromString(const std::string& s) { + if (s == "CURVE3D") return ::Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation_CURVE3D; + if (s == "PCURVE_S1") return ::Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation_PCURVE_S1; + if (s == "PCURVE_S2") return ::Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation_PCURVE_S2; + throw IfcException("Unable to find find keyword in schema"); +} + const char* Ifc4::IfcProcedureTypeEnum::ToString(Value v) { if ( v < 0 || v >= 9 ) throw IfcException("Unable to find find keyword in schema"); const char* names[] = { "ADVICE_CAUTION", "ADVICE_NOTE", "ADVICE_WARNING", "CALIBRATION", "DIAGNOSTIC", "SHUTDOWN", "STARTUP", "USERDEFINED", "NOTDEFINED" }; @@ -3706,12 +3727,13 @@ Ifc4::IfcSectionTypeEnum::Value Ifc4::IfcSectionTypeEnum::FromString(const std:: } const char* Ifc4::IfcSensorTypeEnum::ToString(Value v) { - if ( v < 0 || v >= 25 ) throw IfcException("Unable to find find keyword in schema"); - const char* names[] = { "CO2SENSOR", "CONDUCTANCESENSOR", "CONTACTSENSOR", "FIRESENSOR", "FLOWSENSOR", "FROSTSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "IDENTIFIERSENSOR", "IONCONCENTRATIONSENSOR", "LEVELSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "PHSENSOR", "PRESSURESENSOR", "RADIATIONSENSOR", "RADIOACTIVITYSENSOR", "SMOKESENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "WINDSENSOR", "USERDEFINED", "NOTDEFINED" }; + if ( v < 0 || v >= 26 ) throw IfcException("Unable to find find keyword in schema"); + const char* names[] = { "COSENSOR", "CO2SENSOR", "CONDUCTANCESENSOR", "CONTACTSENSOR", "FIRESENSOR", "FLOWSENSOR", "FROSTSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "IDENTIFIERSENSOR", "IONCONCENTRATIONSENSOR", "LEVELSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "PHSENSOR", "PRESSURESENSOR", "RADIATIONSENSOR", "RADIOACTIVITYSENSOR", "SMOKESENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "WINDSENSOR", "USERDEFINED", "NOTDEFINED" }; return names[v]; } Ifc4::IfcSensorTypeEnum::Value Ifc4::IfcSensorTypeEnum::FromString(const std::string& s) { + if (s == "COSENSOR") return ::Ifc4::IfcSensorTypeEnum::IfcSensorType_COSENSOR; if (s == "CO2SENSOR") return ::Ifc4::IfcSensorTypeEnum::IfcSensorType_CO2SENSOR; if (s == "CONDUCTANCESENSOR") return ::Ifc4::IfcSensorTypeEnum::IfcSensorType_CONDUCTANCESENSOR; if (s == "CONTACTSENSOR") return ::Ifc4::IfcSensorTypeEnum::IfcSensorType_CONTACTSENSOR; @@ -5375,13 +5397,6 @@ Ifc4::IfcSpecularRoughness::IfcSpecularRoughness(IfcEntityInstanceData* e) { dat Ifc4::IfcSpecularRoughness::IfcSpecularRoughness(double v) { data_ = new IfcEntityInstanceData(IFC4_IfcSpecularRoughness_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(v); data_->setArgument(0, attr);} } Ifc4::IfcSpecularRoughness::operator double() const { return *data_->getArgument(0); } -// Function implementations for IfcStrippedOptional -const IfcParse::type_declaration& Ifc4::IfcStrippedOptional::Class() { return *IFC4_IfcStrippedOptional_type; } -const IfcParse::type_declaration& Ifc4::IfcStrippedOptional::declaration() const { return *IFC4_IfcStrippedOptional_type; } -Ifc4::IfcStrippedOptional::IfcStrippedOptional(IfcEntityInstanceData* e) { data_ = e; } -Ifc4::IfcStrippedOptional::IfcStrippedOptional(bool v) { data_ = new IfcEntityInstanceData(IFC4_IfcStrippedOptional_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(v); data_->setArgument(0, attr);} } -Ifc4::IfcStrippedOptional::operator bool() const { return *data_->getArgument(0); } - // Function implementations for IfcTemperatureGradientMeasure const IfcParse::type_declaration& Ifc4::IfcTemperatureGradientMeasure::Class() { return *IFC4_IfcTemperatureGradientMeasure_type; } const IfcParse::type_declaration& Ifc4::IfcTemperatureGradientMeasure::declaration() const { return *IFC4_IfcTemperatureGradientMeasure_type; } @@ -9506,6 +9521,27 @@ const IfcParse::entity& Ifc4::IfcIndexedPolyCurve::Class() { return *IFC4_IfcInd Ifc4::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcIndexedPolyCurve_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } Ifc4::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4::IfcCartesianPointList* v1_Points, boost::optional< IfcEntityList::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } } +// Function implementations for IfcIndexedPolygonalFace +std::vector< int > /*[3:?]*/ Ifc4::IfcIndexedPolygonalFace::CoordIndex() const { return *data_->getArgument(0); } +void Ifc4::IfcIndexedPolygonalFace::setCoordIndex(std::vector< int > /*[3:?]*/ v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} } + +::Ifc4::IfcPolygonalFaceSet::list::ptr Ifc4::IfcIndexedPolygonalFace::ToFaceSet() const { return data_->getInverse(IFC4_IfcPolygonalFaceSet_type, 2)->as(); } + +const IfcParse::entity& Ifc4::IfcIndexedPolygonalFace::declaration() const { return *IFC4_IfcIndexedPolygonalFace_type; } +const IfcParse::entity& Ifc4::IfcIndexedPolygonalFace::Class() { return *IFC4_IfcIndexedPolygonalFace_type; } +Ifc4::IfcIndexedPolygonalFace::IfcIndexedPolygonalFace(IfcEntityInstanceData* e) : IfcTessellatedItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcIndexedPolygonalFace_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4::IfcIndexedPolygonalFace::IfcIndexedPolygonalFace(std::vector< int > /*[3:?]*/ v1_CoordIndex) : IfcTessellatedItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcIndexedPolygonalFace_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_CoordIndex));data_->setArgument(0,attr);} } + +// Function implementations for IfcIndexedPolygonalFaceWithVoids +std::vector< std::vector< int > > Ifc4::IfcIndexedPolygonalFaceWithVoids::InnerCoordIndices() const { return *data_->getArgument(1); } +void Ifc4::IfcIndexedPolygonalFaceWithVoids::setInnerCoordIndices(std::vector< std::vector< int > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} } + + +const IfcParse::entity& Ifc4::IfcIndexedPolygonalFaceWithVoids::declaration() const { return *IFC4_IfcIndexedPolygonalFaceWithVoids_type; } +const IfcParse::entity& Ifc4::IfcIndexedPolygonalFaceWithVoids::Class() { return *IFC4_IfcIndexedPolygonalFaceWithVoids_type; } +Ifc4::IfcIndexedPolygonalFaceWithVoids::IfcIndexedPolygonalFaceWithVoids(IfcEntityInstanceData* e) : IfcIndexedPolygonalFace((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcIndexedPolygonalFaceWithVoids_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4::IfcIndexedPolygonalFaceWithVoids::IfcIndexedPolygonalFaceWithVoids(std::vector< int > /*[3:?]*/ v1_CoordIndex, std::vector< std::vector< int > > v2_InnerCoordIndices) : IfcIndexedPolygonalFace((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcIndexedPolygonalFaceWithVoids_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_CoordIndex));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_InnerCoordIndices));data_->setArgument(1,attr);} } + // Function implementations for IfcIndexedTextureMap ::Ifc4::IfcTessellatedFaceSet* Ifc4::IfcIndexedTextureMap::MappedTo() const { return (::Ifc4::IfcTessellatedFaceSet*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(1))); } void Ifc4::IfcIndexedTextureMap::setMappedTo(::Ifc4::IfcTessellatedFaceSet* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} } @@ -9550,6 +9586,14 @@ const IfcParse::entity& Ifc4::IfcInterceptorType::Class() { return *IFC4_IfcInte Ifc4::IfcInterceptorType::IfcInterceptorType(IfcEntityInstanceData* e) : IfcFlowTreatmentDeviceType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcInterceptorType_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } Ifc4::IfcInterceptorType::IfcInterceptorType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcInterceptorTypeEnum::Value v10_PredefinedType) : IfcFlowTreatmentDeviceType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcInterceptorType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4::IfcInterceptorTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} } +// Function implementations for IfcIntersectionCurve + + +const IfcParse::entity& Ifc4::IfcIntersectionCurve::declaration() const { return *IFC4_IfcIntersectionCurve_type; } +const IfcParse::entity& Ifc4::IfcIntersectionCurve::Class() { return *IFC4_IfcIntersectionCurve_type; } +Ifc4::IfcIntersectionCurve::IfcIntersectionCurve(IfcEntityInstanceData* e) : IfcSurfaceCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcIntersectionCurve_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4::IfcIntersectionCurve::IfcIntersectionCurve(::Ifc4::IfcCurve* v1_Curve3D, IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr v2_AssociatedGeometry, ::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation) : IfcSurfaceCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcIntersectionCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Curve3D));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_AssociatedGeometry)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v3_MasterRepresentation,::Ifc4::IfcPreferredSurfaceCurveRepresentation::ToString(v3_MasterRepresentation))));data_->setArgument(2,attr);} } + // Function implementations for IfcInventory bool Ifc4::IfcInventory::hasPredefinedType() const { return !data_->getArgument(5)->isNull(); } ::Ifc4::IfcInventoryTypeEnum::Value Ifc4::IfcInventory::PredefinedType() const { return ::Ifc4::IfcInventoryTypeEnum::FromString(*data_->getArgument(5)); } @@ -11039,6 +11083,22 @@ const IfcParse::entity& Ifc4::IfcPolygonalBoundedHalfSpace::Class() { return *IF Ifc4::IfcPolygonalBoundedHalfSpace::IfcPolygonalBoundedHalfSpace(IfcEntityInstanceData* e) : IfcHalfSpaceSolid((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcPolygonalBoundedHalfSpace_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } Ifc4::IfcPolygonalBoundedHalfSpace::IfcPolygonalBoundedHalfSpace(::Ifc4::IfcSurface* v1_BaseSurface, bool v2_AgreementFlag, ::Ifc4::IfcAxis2Placement3D* v3_Position, ::Ifc4::IfcBoundedCurve* v4_PolygonalBoundary) : IfcHalfSpaceSolid((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPolygonalBoundedHalfSpace_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BaseSurface));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_AgreementFlag));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_PolygonalBoundary));data_->setArgument(3,attr);} } +// Function implementations for IfcPolygonalFaceSet +bool Ifc4::IfcPolygonalFaceSet::hasClosed() const { return !data_->getArgument(1)->isNull(); } +bool Ifc4::IfcPolygonalFaceSet::Closed() const { return *data_->getArgument(1); } +void Ifc4::IfcPolygonalFaceSet::setClosed(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} } +IfcTemplatedEntityList< ::Ifc4::IfcIndexedPolygonalFace >::ptr Ifc4::IfcPolygonalFaceSet::Faces() const { IfcEntityList::ptr es = *data_->getArgument(2); return es->as< ::Ifc4::IfcIndexedPolygonalFace >(); } +void Ifc4::IfcPolygonalFaceSet::setFaces(IfcTemplatedEntityList< ::Ifc4::IfcIndexedPolygonalFace >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v->generalize());data_->setArgument(2,attr);} } +bool Ifc4::IfcPolygonalFaceSet::hasPnIndex() const { return !data_->getArgument(3)->isNull(); } +std::vector< int > /*[1:?]*/ Ifc4::IfcPolygonalFaceSet::PnIndex() const { return *data_->getArgument(3); } +void Ifc4::IfcPolygonalFaceSet::setPnIndex(std::vector< int > /*[1:?]*/ v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} } + + +const IfcParse::entity& Ifc4::IfcPolygonalFaceSet::declaration() const { return *IFC4_IfcPolygonalFaceSet_type; } +const IfcParse::entity& Ifc4::IfcPolygonalFaceSet::Class() { return *IFC4_IfcPolygonalFaceSet_type; } +Ifc4::IfcPolygonalFaceSet::IfcPolygonalFaceSet(IfcEntityInstanceData* e) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcPolygonalFaceSet_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4::IfcPolygonalFaceSet::IfcPolygonalFaceSet(::Ifc4::IfcCartesianPointList3D* v1_Coordinates, boost::optional< bool > v2_Closed, IfcTemplatedEntityList< ::Ifc4::IfcIndexedPolygonalFace >::ptr v3_Faces, boost::optional< std::vector< int > /*[1:?]*/ > v4_PnIndex) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPolygonalFaceSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));data_->setArgument(0,attr);} if (v2_Closed) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Closed));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Faces)->generalize());data_->setArgument(2,attr);} if (v4_PnIndex) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_PnIndex));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } } + // Function implementations for IfcPolyline IfcTemplatedEntityList< ::Ifc4::IfcCartesianPoint >::ptr Ifc4::IfcPolyline::Points() const { IfcEntityList::ptr es = *data_->getArgument(0); return es->as< ::Ifc4::IfcCartesianPoint >(); } void Ifc4::IfcPolyline::setPoints(IfcTemplatedEntityList< ::Ifc4::IfcCartesianPoint >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v->generalize());data_->setArgument(0,attr);} } @@ -13060,6 +13120,14 @@ const IfcParse::entity& Ifc4::IfcSchedulingTime::Class() { return *IFC4_IfcSched Ifc4::IfcSchedulingTime::IfcSchedulingTime(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4_IfcSchedulingTime_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } Ifc4::IfcSchedulingTime::IfcSchedulingTime(boost::optional< std::string > v1_Name, boost::optional< ::Ifc4::IfcDataOriginEnum::Value > v2_DataOrigin, boost::optional< std::string > v3_UserDefinedDataOrigin) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcSchedulingTime_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_DataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v2_DataOrigin,::Ifc4::IfcDataOriginEnum::ToString(*v2_DataOrigin))));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_UserDefinedDataOrigin));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } } +// Function implementations for IfcSeamCurve + + +const IfcParse::entity& Ifc4::IfcSeamCurve::declaration() const { return *IFC4_IfcSeamCurve_type; } +const IfcParse::entity& Ifc4::IfcSeamCurve::Class() { return *IFC4_IfcSeamCurve_type; } +Ifc4::IfcSeamCurve::IfcSeamCurve(IfcEntityInstanceData* e) : IfcSurfaceCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcSeamCurve_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4::IfcSeamCurve::IfcSeamCurve(::Ifc4::IfcCurve* v1_Curve3D, IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr v2_AssociatedGeometry, ::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation) : IfcSurfaceCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcSeamCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Curve3D));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_AssociatedGeometry)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v3_MasterRepresentation,::Ifc4::IfcPreferredSurfaceCurveRepresentation::ToString(v3_MasterRepresentation))));data_->setArgument(2,attr);} } + // Function implementations for IfcSectionProperties ::Ifc4::IfcSectionTypeEnum::Value Ifc4::IfcSectionProperties::SectionType() const { return ::Ifc4::IfcSectionTypeEnum::FromString(*data_->getArgument(0)); } void Ifc4::IfcSectionProperties::setSectionType(::Ifc4::IfcSectionTypeEnum::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4::IfcSectionTypeEnum::ToString(v)));data_->setArgument(0,attr);} } @@ -13474,6 +13542,16 @@ const IfcParse::entity& Ifc4::IfcSphere::Class() { return *IFC4_IfcSphere_type; Ifc4::IfcSphere::IfcSphere(IfcEntityInstanceData* e) : IfcCsgPrimitive3D((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcSphere_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } Ifc4::IfcSphere::IfcSphere(::Ifc4::IfcAxis2Placement3D* v1_Position, double v2_Radius) : IfcCsgPrimitive3D((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcSphere_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Position));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Radius));data_->setArgument(1,attr);} } +// Function implementations for IfcSphericalSurface +double Ifc4::IfcSphericalSurface::Radius() const { return *data_->getArgument(1); } +void Ifc4::IfcSphericalSurface::setRadius(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} } + + +const IfcParse::entity& Ifc4::IfcSphericalSurface::declaration() const { return *IFC4_IfcSphericalSurface_type; } +const IfcParse::entity& Ifc4::IfcSphericalSurface::Class() { return *IFC4_IfcSphericalSurface_type; } +Ifc4::IfcSphericalSurface::IfcSphericalSurface(IfcEntityInstanceData* e) : IfcElementarySurface((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcSphericalSurface_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4::IfcSphericalSurface::IfcSphericalSurface(::Ifc4::IfcAxis2Placement3D* v1_Position, double v2_Radius) : IfcElementarySurface((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcSphericalSurface_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Position));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Radius));data_->setArgument(1,attr);} } + // Function implementations for IfcStackTerminal bool Ifc4::IfcStackTerminal::hasPredefinedType() const { return !data_->getArgument(8)->isNull(); } ::Ifc4::IfcStackTerminalTypeEnum::Value Ifc4::IfcStackTerminal::PredefinedType() const { return ::Ifc4::IfcStackTerminalTypeEnum::FromString(*data_->getArgument(8)); } @@ -14086,6 +14164,20 @@ const IfcParse::entity& Ifc4::IfcSurface::Class() { return *IFC4_IfcSurface_type Ifc4::IfcSurface::IfcSurface(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcSurface_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } Ifc4::IfcSurface::IfcSurface() : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcSurface_type); } +// Function implementations for IfcSurfaceCurve +::Ifc4::IfcCurve* Ifc4::IfcSurfaceCurve::Curve3D() const { return (::Ifc4::IfcCurve*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(0))); } +void Ifc4::IfcSurfaceCurve::setCurve3D(::Ifc4::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} } +IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr Ifc4::IfcSurfaceCurve::AssociatedGeometry() const { IfcEntityList::ptr es = *data_->getArgument(1); return es->as< ::Ifc4::IfcPcurve >(); } +void Ifc4::IfcSurfaceCurve::setAssociatedGeometry(IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v->generalize());data_->setArgument(1,attr);} } +::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value Ifc4::IfcSurfaceCurve::MasterRepresentation() const { return ::Ifc4::IfcPreferredSurfaceCurveRepresentation::FromString(*data_->getArgument(2)); } +void Ifc4::IfcSurfaceCurve::setMasterRepresentation(::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4::IfcPreferredSurfaceCurveRepresentation::ToString(v)));data_->setArgument(2,attr);} } + + +const IfcParse::entity& Ifc4::IfcSurfaceCurve::declaration() const { return *IFC4_IfcSurfaceCurve_type; } +const IfcParse::entity& Ifc4::IfcSurfaceCurve::Class() { return *IFC4_IfcSurfaceCurve_type; } +Ifc4::IfcSurfaceCurve::IfcSurfaceCurve(IfcEntityInstanceData* e) : IfcCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcSurfaceCurve_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4::IfcSurfaceCurve::IfcSurfaceCurve(::Ifc4::IfcCurve* v1_Curve3D, IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr v2_AssociatedGeometry, ::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation) : IfcCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcSurfaceCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Curve3D));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_AssociatedGeometry)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v3_MasterRepresentation,::Ifc4::IfcPreferredSurfaceCurveRepresentation::ToString(v3_MasterRepresentation))));data_->setArgument(2,attr);} } + // Function implementations for IfcSurfaceCurveSweptAreaSolid ::Ifc4::IfcCurve* Ifc4::IfcSurfaceCurveSweptAreaSolid::Directrix() const { return (::Ifc4::IfcCurve*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(2))); } void Ifc4::IfcSurfaceCurveSweptAreaSolid::setDirectrix(::Ifc4::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} } @@ -14681,25 +14773,19 @@ void Ifc4::IfcTendonType::setNominalDiameter(double v) { {IfcWrite::IfcWriteArgu bool Ifc4::IfcTendonType::hasCrossSectionArea() const { return !data_->getArgument(11)->isNull(); } double Ifc4::IfcTendonType::CrossSectionArea() const { return *data_->getArgument(11); } void Ifc4::IfcTendonType::setCrossSectionArea(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(11,attr);} } -bool Ifc4::IfcTendonType::hasSheethDiameter() const { return !data_->getArgument(12)->isNull(); } -double Ifc4::IfcTendonType::SheethDiameter() const { return *data_->getArgument(12); } -void Ifc4::IfcTendonType::setSheethDiameter(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(12,attr);} } +bool Ifc4::IfcTendonType::hasSheathDiameter() const { return !data_->getArgument(12)->isNull(); } +double Ifc4::IfcTendonType::SheathDiameter() const { return *data_->getArgument(12); } +void Ifc4::IfcTendonType::setSheathDiameter(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(12,attr);} } const IfcParse::entity& Ifc4::IfcTendonType::declaration() const { return *IFC4_IfcTendonType_type; } const IfcParse::entity& Ifc4::IfcTendonType::Class() { return *IFC4_IfcTendonType_type; } Ifc4::IfcTendonType::IfcTendonType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcTendonType_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4::IfcTendonType::IfcTendonType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcTendonTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_SheethDiameter) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTendonType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4::IfcTendonTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_SheethDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_SheethDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } } +Ifc4::IfcTendonType::IfcTendonType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcTendonTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_SheathDiameter) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTendonType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4::IfcTendonTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_SheathDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_SheathDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } } // Function implementations for IfcTessellatedFaceSet ::Ifc4::IfcCartesianPointList3D* Ifc4::IfcTessellatedFaceSet::Coordinates() const { return (::Ifc4::IfcCartesianPointList3D*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(0))); } void Ifc4::IfcTessellatedFaceSet::setCoordinates(::Ifc4::IfcCartesianPointList3D* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} } -bool Ifc4::IfcTessellatedFaceSet::hasNormals() const { return !data_->getArgument(1)->isNull(); } -std::vector< std::vector< double > > Ifc4::IfcTessellatedFaceSet::Normals() const { return *data_->getArgument(1); } -void Ifc4::IfcTessellatedFaceSet::setNormals(std::vector< std::vector< double > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} } -bool Ifc4::IfcTessellatedFaceSet::hasClosed() const { return !data_->getArgument(2)->isNull(); } -bool Ifc4::IfcTessellatedFaceSet::Closed() const { return *data_->getArgument(2); } -void Ifc4::IfcTessellatedFaceSet::setClosed(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} } ::Ifc4::IfcIndexedColourMap::list::ptr Ifc4::IfcTessellatedFaceSet::HasColours() const { return data_->getInverse(IFC4_IfcIndexedColourMap_type, 0)->as(); } ::Ifc4::IfcIndexedTextureMap::list::ptr Ifc4::IfcTessellatedFaceSet::HasTextures() const { return data_->getInverse(IFC4_IfcIndexedTextureMap_type, 1)->as(); } @@ -14707,7 +14793,7 @@ void Ifc4::IfcTessellatedFaceSet::setClosed(bool v) { {IfcWrite::IfcWriteArgumen const IfcParse::entity& Ifc4::IfcTessellatedFaceSet::declaration() const { return *IFC4_IfcTessellatedFaceSet_type; } const IfcParse::entity& Ifc4::IfcTessellatedFaceSet::Class() { return *IFC4_IfcTessellatedFaceSet_type; } Ifc4::IfcTessellatedFaceSet::IfcTessellatedFaceSet(IfcEntityInstanceData* e) : IfcTessellatedItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcTessellatedFaceSet_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4::IfcTessellatedFaceSet::IfcTessellatedFaceSet(::Ifc4::IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed) : IfcTessellatedItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTessellatedFaceSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));data_->setArgument(0,attr);} if (v2_Normals) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Normals));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Closed) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Closed));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } } +Ifc4::IfcTessellatedFaceSet::IfcTessellatedFaceSet(::Ifc4::IfcCartesianPointList3D* v1_Coordinates) : IfcTessellatedItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTessellatedFaceSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));data_->setArgument(0,attr);} } // Function implementations for IfcTessellatedItem @@ -14946,6 +15032,18 @@ const IfcParse::entity& Ifc4::IfcTopologyRepresentation::Class() { return *IFC4_ Ifc4::IfcTopologyRepresentation::IfcTopologyRepresentation(IfcEntityInstanceData* e) : IfcShapeModel((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcTopologyRepresentation_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } Ifc4::IfcTopologyRepresentation::IfcTopologyRepresentation(::Ifc4::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, IfcTemplatedEntityList< ::Ifc4::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTopologyRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} } +// Function implementations for IfcToroidalSurface +double Ifc4::IfcToroidalSurface::MajorRadius() const { return *data_->getArgument(1); } +void Ifc4::IfcToroidalSurface::setMajorRadius(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} } +double Ifc4::IfcToroidalSurface::MinorRadius() const { return *data_->getArgument(2); } +void Ifc4::IfcToroidalSurface::setMinorRadius(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} } + + +const IfcParse::entity& Ifc4::IfcToroidalSurface::declaration() const { return *IFC4_IfcToroidalSurface_type; } +const IfcParse::entity& Ifc4::IfcToroidalSurface::Class() { return *IFC4_IfcToroidalSurface_type; } +Ifc4::IfcToroidalSurface::IfcToroidalSurface(IfcEntityInstanceData* e) : IfcElementarySurface((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcToroidalSurface_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4::IfcToroidalSurface::IfcToroidalSurface(::Ifc4::IfcAxis2Placement3D* v1_Position, double v2_MajorRadius, double v3_MinorRadius) : IfcElementarySurface((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcToroidalSurface_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Position));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_MajorRadius));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_MinorRadius));data_->setArgument(2,attr);} } + // Function implementations for IfcTransformer bool Ifc4::IfcTransformer::hasPredefinedType() const { return !data_->getArgument(8)->isNull(); } ::Ifc4::IfcTransformerTypeEnum::Value Ifc4::IfcTransformer::PredefinedType() const { return ::Ifc4::IfcTransformerTypeEnum::FromString(*data_->getArgument(8)); } @@ -15005,17 +15103,23 @@ Ifc4::IfcTrapeziumProfileDef::IfcTrapeziumProfileDef(IfcEntityInstanceData* e) : Ifc4::IfcTrapeziumProfileDef::IfcTrapeziumProfileDef(::Ifc4::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4::IfcAxis2Placement2D* v3_Position, double v4_BottomXDim, double v5_TopXDim, double v6_YDim, double v7_TopXOffset) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTrapeziumProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_BottomXDim));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_TopXDim));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_YDim));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_TopXOffset));data_->setArgument(6,attr);} } // Function implementations for IfcTriangulatedFaceSet +bool Ifc4::IfcTriangulatedFaceSet::hasNormals() const { return !data_->getArgument(1)->isNull(); } +std::vector< std::vector< double > > Ifc4::IfcTriangulatedFaceSet::Normals() const { return *data_->getArgument(1); } +void Ifc4::IfcTriangulatedFaceSet::setNormals(std::vector< std::vector< double > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} } +bool Ifc4::IfcTriangulatedFaceSet::hasClosed() const { return !data_->getArgument(2)->isNull(); } +bool Ifc4::IfcTriangulatedFaceSet::Closed() const { return *data_->getArgument(2); } +void Ifc4::IfcTriangulatedFaceSet::setClosed(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} } std::vector< std::vector< int > > Ifc4::IfcTriangulatedFaceSet::CoordIndex() const { return *data_->getArgument(3); } void Ifc4::IfcTriangulatedFaceSet::setCoordIndex(std::vector< std::vector< int > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} } -bool Ifc4::IfcTriangulatedFaceSet::hasNormalIndex() const { return !data_->getArgument(4)->isNull(); } -std::vector< std::vector< int > > Ifc4::IfcTriangulatedFaceSet::NormalIndex() const { return *data_->getArgument(4); } -void Ifc4::IfcTriangulatedFaceSet::setNormalIndex(std::vector< std::vector< int > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} } +bool Ifc4::IfcTriangulatedFaceSet::hasPnIndex() const { return !data_->getArgument(4)->isNull(); } +std::vector< int > /*[1:?]*/ Ifc4::IfcTriangulatedFaceSet::PnIndex() const { return *data_->getArgument(4); } +void Ifc4::IfcTriangulatedFaceSet::setPnIndex(std::vector< int > /*[1:?]*/ v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} } const IfcParse::entity& Ifc4::IfcTriangulatedFaceSet::declaration() const { return *IFC4_IfcTriangulatedFaceSet_type; } const IfcParse::entity& Ifc4::IfcTriangulatedFaceSet::Class() { return *IFC4_IfcTriangulatedFaceSet_type; } Ifc4::IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(IfcEntityInstanceData* e) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcTriangulatedFaceSet_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4::IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(::Ifc4::IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, boost::optional< std::vector< std::vector< int > > > v5_NormalIndex) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTriangulatedFaceSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));data_->setArgument(0,attr);} if (v2_Normals) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Normals));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Closed) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Closed));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_CoordIndex));data_->setArgument(3,attr);} if (v5_NormalIndex) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_NormalIndex));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } } +Ifc4::IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(::Ifc4::IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, boost::optional< std::vector< int > /*[1:?]*/ > v5_PnIndex) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTriangulatedFaceSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));data_->setArgument(0,attr);} if (v2_Normals) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Normals));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Closed) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Closed));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_CoordIndex));data_->setArgument(3,attr);} if (v5_PnIndex) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_PnIndex));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } } // Function implementations for IfcTrimmedCurve ::Ifc4::IfcCurve* Ifc4::IfcTrimmedCurve::BasisCurve() const { return (::Ifc4::IfcCurve*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(0))); } diff --git a/src/ifcparse/Ifc4.h b/src/ifcparse/Ifc4.h index b6c5485394..0bd55f9c9d 100644 --- a/src/ifcparse/Ifc4.h +++ b/src/ifcparse/Ifc4.h @@ -49,7 +49,7 @@ static const IfcParse::schema_definition& get_schema(); static const char* const Identifier; // Forward definitions -class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; class IfcActuatorType; class IfcAddress; class IfcAdvancedBrep; class IfcAdvancedBrepWithVoids; class IfcAdvancedFace; class IfcAirTerminal; class IfcAirTerminalBox; class IfcAirTerminalBoxType; class IfcAirTerminalType; class IfcAirToAirHeatRecovery; class IfcAirToAirHeatRecoveryType; class IfcAlarm; class IfcAlarmType; class IfcAnnotation; class IfcAnnotationFillArea; class IfcApplication; class IfcAppliedValue; class IfcApproval; class IfcApprovalRelationship; class IfcArbitraryClosedProfileDef; class IfcArbitraryOpenProfileDef; class IfcArbitraryProfileDefWithVoids; class IfcAsset; class IfcAsymmetricIShapeProfileDef; class IfcAudioVisualAppliance; class IfcAudioVisualApplianceType; class IfcAxis1Placement; class IfcAxis2Placement2D; class IfcAxis2Placement3D; class IfcBSplineCurve; class IfcBSplineCurveWithKnots; class IfcBSplineSurface; class IfcBSplineSurfaceWithKnots; class IfcBeam; class IfcBeamStandardCase; class IfcBeamType; class IfcBlobTexture; class IfcBlock; class IfcBoiler; class IfcBoilerType; class IfcBooleanClippingResult; class IfcBooleanResult; class IfcBoundaryCondition; class IfcBoundaryCurve; class IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping; class IfcBoundedCurve; class IfcBoundedSurface; class IfcBoundingBox; class IfcBoxedHalfSpace; class IfcBuilding; class IfcBuildingElement; class IfcBuildingElementPart; class IfcBuildingElementPartType; class IfcBuildingElementProxy; class IfcBuildingElementProxyType; class IfcBuildingElementType; class IfcBuildingStorey; class IfcBuildingSystem; class IfcBurner; class IfcBurnerType; class IfcCShapeProfileDef; class IfcCableCarrierFitting; class IfcCableCarrierFittingType; class IfcCableCarrierSegment; class IfcCableCarrierSegmentType; class IfcCableFitting; class IfcCableFittingType; class IfcCableSegment; class IfcCableSegmentType; class IfcCartesianPoint; class IfcCartesianPointList; class IfcCartesianPointList2D; class IfcCartesianPointList3D; class IfcCartesianTransformationOperator; class IfcCartesianTransformationOperator2D; class IfcCartesianTransformationOperator2DnonUniform; class IfcCartesianTransformationOperator3D; class IfcCartesianTransformationOperator3DnonUniform; class IfcCenterLineProfileDef; class IfcChiller; class IfcChillerType; class IfcChimney; class IfcChimneyType; class IfcCircle; class IfcCircleHollowProfileDef; class IfcCircleProfileDef; class IfcCivilElement; class IfcCivilElementType; class IfcClassification; class IfcClassificationReference; class IfcClosedShell; class IfcCoil; class IfcCoilType; class IfcColourRgb; class IfcColourRgbList; class IfcColourSpecification; class IfcColumn; class IfcColumnStandardCase; class IfcColumnType; class IfcCommunicationsAppliance; class IfcCommunicationsApplianceType; class IfcComplexProperty; class IfcComplexPropertyTemplate; class IfcCompositeCurve; class IfcCompositeCurveOnSurface; class IfcCompositeCurveSegment; class IfcCompositeProfileDef; class IfcCompressor; class IfcCompressorType; class IfcCondenser; class IfcCondenserType; class IfcConic; class IfcConnectedFaceSet; class IfcConnectionCurveGeometry; class IfcConnectionGeometry; class IfcConnectionPointEccentricity; class IfcConnectionPointGeometry; class IfcConnectionSurfaceGeometry; class IfcConnectionVolumeGeometry; class IfcConstraint; class IfcConstructionEquipmentResource; class IfcConstructionEquipmentResourceType; class IfcConstructionMaterialResource; class IfcConstructionMaterialResourceType; class IfcConstructionProductResource; class IfcConstructionProductResourceType; class IfcConstructionResource; class IfcConstructionResourceType; class IfcContext; class IfcContextDependentUnit; class IfcControl; class IfcController; class IfcControllerType; class IfcConversionBasedUnit; class IfcConversionBasedUnitWithOffset; class IfcCooledBeam; class IfcCooledBeamType; class IfcCoolingTower; class IfcCoolingTowerType; class IfcCoordinateOperation; class IfcCoordinateReferenceSystem; class IfcCostItem; class IfcCostSchedule; class IfcCostValue; class IfcCovering; class IfcCoveringType; class IfcCrewResource; class IfcCrewResourceType; class IfcCsgPrimitive3D; class IfcCsgSolid; class IfcCurrencyRelationship; class IfcCurtainWall; class IfcCurtainWallType; class IfcCurve; class IfcCurveBoundedPlane; class IfcCurveBoundedSurface; class IfcCurveStyle; class IfcCurveStyleFont; class IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern; class IfcCylindricalSurface; class IfcDamper; class IfcDamperType; class IfcDerivedProfileDef; class IfcDerivedUnit; class IfcDerivedUnitElement; class IfcDimensionalExponents; class IfcDirection; class IfcDiscreteAccessory; class IfcDiscreteAccessoryType; class IfcDistributionChamberElement; class IfcDistributionChamberElementType; class IfcDistributionCircuit; class IfcDistributionControlElement; class IfcDistributionControlElementType; class IfcDistributionElement; class IfcDistributionElementType; class IfcDistributionFlowElement; class IfcDistributionFlowElementType; class IfcDistributionPort; class IfcDistributionSystem; class IfcDocumentInformation; class IfcDocumentInformationRelationship; class IfcDocumentReference; class IfcDoor; class IfcDoorLiningProperties; class IfcDoorPanelProperties; class IfcDoorStandardCase; class IfcDoorStyle; class IfcDoorType; class IfcDraughtingPreDefinedColour; class IfcDraughtingPreDefinedCurveFont; class IfcDuctFitting; class IfcDuctFittingType; class IfcDuctSegment; class IfcDuctSegmentType; class IfcDuctSilencer; class IfcDuctSilencerType; class IfcEdge; class IfcEdgeCurve; class IfcEdgeLoop; class IfcElectricAppliance; class IfcElectricApplianceType; class IfcElectricDistributionBoard; class IfcElectricDistributionBoardType; class IfcElectricFlowStorageDevice; class IfcElectricFlowStorageDeviceType; class IfcElectricGenerator; class IfcElectricGeneratorType; class IfcElectricMotor; class IfcElectricMotorType; class IfcElectricTimeControl; class IfcElectricTimeControlType; class IfcElement; class IfcElementAssembly; class IfcElementAssemblyType; class IfcElementComponent; class IfcElementComponentType; class IfcElementQuantity; class IfcElementType; class IfcElementarySurface; class IfcEllipse; class IfcEllipseProfileDef; class IfcEnergyConversionDevice; class IfcEnergyConversionDeviceType; class IfcEngine; class IfcEngineType; class IfcEvaporativeCooler; class IfcEvaporativeCoolerType; class IfcEvaporator; class IfcEvaporatorType; class IfcEvent; class IfcEventTime; class IfcEventType; class IfcExtendedProperties; class IfcExternalInformation; class IfcExternalReference; class IfcExternalReferenceRelationship; class IfcExternalSpatialElement; class IfcExternalSpatialStructureElement; class IfcExternallyDefinedHatchStyle; class IfcExternallyDefinedSurfaceStyle; class IfcExternallyDefinedTextFont; class IfcExtrudedAreaSolid; class IfcExtrudedAreaSolidTapered; class IfcFace; class IfcFaceBasedSurfaceModel; class IfcFaceBound; class IfcFaceOuterBound; class IfcFaceSurface; class IfcFacetedBrep; class IfcFacetedBrepWithVoids; class IfcFailureConnectionCondition; class IfcFan; class IfcFanType; class IfcFastener; class IfcFastenerType; class IfcFeatureElement; class IfcFeatureElementAddition; class IfcFeatureElementSubtraction; class IfcFillAreaStyle; class IfcFillAreaStyleHatching; class IfcFillAreaStyleTiles; class IfcFilter; class IfcFilterType; class IfcFireSuppressionTerminal; class IfcFireSuppressionTerminalType; class IfcFixedReferenceSweptAreaSolid; class IfcFlowController; class IfcFlowControllerType; class IfcFlowFitting; class IfcFlowFittingType; class IfcFlowInstrument; class IfcFlowInstrumentType; class IfcFlowMeter; class IfcFlowMeterType; class IfcFlowMovingDevice; class IfcFlowMovingDeviceType; class IfcFlowSegment; class IfcFlowSegmentType; class IfcFlowStorageDevice; class IfcFlowStorageDeviceType; class IfcFlowTerminal; class IfcFlowTerminalType; class IfcFlowTreatmentDevice; class IfcFlowTreatmentDeviceType; class IfcFooting; class IfcFootingType; class IfcFurnishingElement; class IfcFurnishingElementType; class IfcFurniture; class IfcFurnitureType; class IfcGeographicElement; class IfcGeographicElementType; class IfcGeometricCurveSet; class IfcGeometricRepresentationContext; class IfcGeometricRepresentationItem; class IfcGeometricRepresentationSubContext; class IfcGeometricSet; class IfcGrid; class IfcGridAxis; class IfcGridPlacement; class IfcGroup; class IfcHalfSpaceSolid; class IfcHeatExchanger; class IfcHeatExchangerType; class IfcHumidifier; class IfcHumidifierType; class IfcIShapeProfileDef; class IfcImageTexture; class IfcIndexedColourMap; class IfcIndexedPolyCurve; class IfcIndexedTextureMap; class IfcIndexedTriangleTextureMap; class IfcInterceptor; class IfcInterceptorType; class IfcInventory; class IfcIrregularTimeSeries; class IfcIrregularTimeSeriesValue; class IfcJunctionBox; class IfcJunctionBoxType; class IfcLShapeProfileDef; class IfcLaborResource; class IfcLaborResourceType; class IfcLagTime; class IfcLamp; class IfcLampType; class IfcLibraryInformation; class IfcLibraryReference; class IfcLightDistributionData; class IfcLightFixture; class IfcLightFixtureType; class IfcLightIntensityDistribution; class IfcLightSource; class IfcLightSourceAmbient; class IfcLightSourceDirectional; class IfcLightSourceGoniometric; class IfcLightSourcePositional; class IfcLightSourceSpot; class IfcLine; class IfcLocalPlacement; class IfcLoop; class IfcManifoldSolidBrep; class IfcMapConversion; class IfcMappedItem; class IfcMaterial; class IfcMaterialClassificationRelationship; class IfcMaterialConstituent; class IfcMaterialConstituentSet; class IfcMaterialDefinition; class IfcMaterialDefinitionRepresentation; class IfcMaterialLayer; class IfcMaterialLayerSet; class IfcMaterialLayerSetUsage; class IfcMaterialLayerWithOffsets; class IfcMaterialList; class IfcMaterialProfile; class IfcMaterialProfileSet; class IfcMaterialProfileSetUsage; class IfcMaterialProfileSetUsageTapering; class IfcMaterialProfileWithOffsets; class IfcMaterialProperties; class IfcMaterialRelationship; class IfcMaterialUsageDefinition; class IfcMeasureWithUnit; class IfcMechanicalFastener; class IfcMechanicalFastenerType; class IfcMedicalDevice; class IfcMedicalDeviceType; class IfcMember; class IfcMemberStandardCase; class IfcMemberType; class IfcMetric; class IfcMirroredProfileDef; class IfcMonetaryUnit; class IfcMotorConnection; class IfcMotorConnectionType; class IfcNamedUnit; class IfcObject; class IfcObjectDefinition; class IfcObjectPlacement; class IfcObjective; class IfcOccupant; class IfcOffsetCurve2D; class IfcOffsetCurve3D; class IfcOpenShell; class IfcOpeningElement; class IfcOpeningStandardCase; class IfcOrganization; class IfcOrganizationRelationship; class IfcOrientedEdge; class IfcOuterBoundaryCurve; class IfcOutlet; class IfcOutletType; class IfcOwnerHistory; class IfcParameterizedProfileDef; class IfcPath; class IfcPcurve; class IfcPerformanceHistory; class IfcPermeableCoveringProperties; class IfcPermit; class IfcPerson; class IfcPersonAndOrganization; class IfcPhysicalComplexQuantity; class IfcPhysicalQuantity; class IfcPhysicalSimpleQuantity; class IfcPile; class IfcPileType; class IfcPipeFitting; class IfcPipeFittingType; class IfcPipeSegment; class IfcPipeSegmentType; class IfcPixelTexture; class IfcPlacement; class IfcPlanarBox; class IfcPlanarExtent; class IfcPlane; class IfcPlate; class IfcPlateStandardCase; class IfcPlateType; class IfcPoint; class IfcPointOnCurve; class IfcPointOnSurface; class IfcPolyLoop; class IfcPolygonalBoundedHalfSpace; class IfcPolyline; class IfcPort; class IfcPostalAddress; class IfcPreDefinedColour; class IfcPreDefinedCurveFont; class IfcPreDefinedItem; class IfcPreDefinedProperties; class IfcPreDefinedPropertySet; class IfcPreDefinedTextFont; class IfcPresentationItem; class IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle; class IfcPresentationStyle; class IfcPresentationStyleAssignment; class IfcProcedure; class IfcProcedureType; class IfcProcess; class IfcProduct; class IfcProductDefinitionShape; class IfcProductRepresentation; class IfcProfileDef; class IfcProfileProperties; class IfcProject; class IfcProjectLibrary; class IfcProjectOrder; class IfcProjectedCRS; class IfcProjectionElement; class IfcProperty; class IfcPropertyAbstraction; class IfcPropertyBoundedValue; class IfcPropertyDefinition; class IfcPropertyDependencyRelationship; class IfcPropertyEnumeratedValue; class IfcPropertyEnumeration; class IfcPropertyListValue; class IfcPropertyReferenceValue; class IfcPropertySet; class IfcPropertySetDefinition; class IfcPropertySetTemplate; class IfcPropertySingleValue; class IfcPropertyTableValue; class IfcPropertyTemplate; class IfcPropertyTemplateDefinition; class IfcProtectiveDevice; class IfcProtectiveDeviceTrippingUnit; class IfcProtectiveDeviceTrippingUnitType; class IfcProtectiveDeviceType; class IfcProxy; class IfcPump; class IfcPumpType; class IfcQuantityArea; class IfcQuantityCount; class IfcQuantityLength; class IfcQuantitySet; class IfcQuantityTime; class IfcQuantityVolume; class IfcQuantityWeight; class IfcRailing; class IfcRailingType; class IfcRamp; class IfcRampFlight; class IfcRampFlightType; class IfcRampType; class IfcRationalBSplineCurveWithKnots; class IfcRationalBSplineSurfaceWithKnots; class IfcRectangleHollowProfileDef; class IfcRectangleProfileDef; class IfcRectangularPyramid; class IfcRectangularTrimmedSurface; class IfcRecurrencePattern; class IfcReference; class IfcRegularTimeSeries; class IfcReinforcementBarProperties; class IfcReinforcementDefinitionProperties; class IfcReinforcingBar; class IfcReinforcingBarType; class IfcReinforcingElement; class IfcReinforcingElementType; class IfcReinforcingMesh; class IfcReinforcingMeshType; class IfcRelAggregates; class IfcRelAssigns; class IfcRelAssignsToActor; class IfcRelAssignsToControl; class IfcRelAssignsToGroup; class IfcRelAssignsToGroupByFactor; class IfcRelAssignsToProcess; class IfcRelAssignsToProduct; class IfcRelAssignsToResource; class IfcRelAssociates; class IfcRelAssociatesApproval; class IfcRelAssociatesClassification; class IfcRelAssociatesConstraint; class IfcRelAssociatesDocument; class IfcRelAssociatesLibrary; class IfcRelAssociatesMaterial; class IfcRelConnects; class IfcRelConnectsElements; class IfcRelConnectsPathElements; class IfcRelConnectsPortToElement; class IfcRelConnectsPorts; class IfcRelConnectsStructuralActivity; class IfcRelConnectsStructuralMember; class IfcRelConnectsWithEccentricity; class IfcRelConnectsWithRealizingElements; class IfcRelContainedInSpatialStructure; class IfcRelCoversBldgElements; class IfcRelCoversSpaces; class IfcRelDeclares; class IfcRelDecomposes; class IfcRelDefines; class IfcRelDefinesByObject; class IfcRelDefinesByProperties; class IfcRelDefinesByTemplate; class IfcRelDefinesByType; class IfcRelFillsElement; class IfcRelFlowControlElements; class IfcRelInterferesElements; class IfcRelNests; class IfcRelProjectsElement; class IfcRelReferencedInSpatialStructure; class IfcRelSequence; class IfcRelServicesBuildings; class IfcRelSpaceBoundary; class IfcRelSpaceBoundary1stLevel; class IfcRelSpaceBoundary2ndLevel; class IfcRelVoidsElement; class IfcRelationship; class IfcReparametrisedCompositeCurveSegment; class IfcRepresentation; class IfcRepresentationContext; class IfcRepresentationItem; class IfcRepresentationMap; class IfcResource; class IfcResourceApprovalRelationship; class IfcResourceConstraintRelationship; class IfcResourceLevelRelationship; class IfcResourceTime; class IfcRevolvedAreaSolid; class IfcRevolvedAreaSolidTapered; class IfcRightCircularCone; class IfcRightCircularCylinder; class IfcRoof; class IfcRoofType; class IfcRoot; class IfcRoundedRectangleProfileDef; class IfcSIUnit; class IfcSanitaryTerminal; class IfcSanitaryTerminalType; class IfcSchedulingTime; class IfcSectionProperties; class IfcSectionReinforcementProperties; class IfcSectionedSpine; class IfcSensor; class IfcSensorType; class IfcShadingDevice; class IfcShadingDeviceType; class IfcShapeAspect; class IfcShapeModel; class IfcShapeRepresentation; class IfcShellBasedSurfaceModel; class IfcSimpleProperty; class IfcSimplePropertyTemplate; class IfcSite; class IfcSlab; class IfcSlabElementedCase; class IfcSlabStandardCase; class IfcSlabType; class IfcSlippageConnectionCondition; class IfcSolarDevice; class IfcSolarDeviceType; class IfcSolidModel; class IfcSpace; class IfcSpaceHeater; class IfcSpaceHeaterType; class IfcSpaceType; class IfcSpatialElement; class IfcSpatialElementType; class IfcSpatialStructureElement; class IfcSpatialStructureElementType; class IfcSpatialZone; class IfcSpatialZoneType; class IfcSphere; class IfcStackTerminal; class IfcStackTerminalType; class IfcStair; class IfcStairFlight; class IfcStairFlightType; class IfcStairType; class IfcStructuralAction; class IfcStructuralActivity; class IfcStructuralAnalysisModel; class IfcStructuralConnection; class IfcStructuralConnectionCondition; class IfcStructuralCurveAction; class IfcStructuralCurveConnection; class IfcStructuralCurveMember; class IfcStructuralCurveMemberVarying; class IfcStructuralCurveReaction; class IfcStructuralItem; class IfcStructuralLinearAction; class IfcStructuralLoad; class IfcStructuralLoadCase; class IfcStructuralLoadConfiguration; class IfcStructuralLoadGroup; class IfcStructuralLoadLinearForce; class IfcStructuralLoadOrResult; class IfcStructuralLoadPlanarForce; class IfcStructuralLoadSingleDisplacement; class IfcStructuralLoadSingleDisplacementDistortion; class IfcStructuralLoadSingleForce; class IfcStructuralLoadSingleForceWarping; class IfcStructuralLoadStatic; class IfcStructuralLoadTemperature; class IfcStructuralMember; class IfcStructuralPlanarAction; class IfcStructuralPointAction; class IfcStructuralPointConnection; class IfcStructuralPointReaction; class IfcStructuralReaction; class IfcStructuralResultGroup; class IfcStructuralSurfaceAction; class IfcStructuralSurfaceConnection; class IfcStructuralSurfaceMember; class IfcStructuralSurfaceMemberVarying; class IfcStructuralSurfaceReaction; class IfcStyleModel; class IfcStyledItem; class IfcStyledRepresentation; class IfcSubContractResource; class IfcSubContractResourceType; class IfcSubedge; class IfcSurface; class IfcSurfaceCurveSweptAreaSolid; class IfcSurfaceFeature; class IfcSurfaceOfLinearExtrusion; class IfcSurfaceOfRevolution; class IfcSurfaceReinforcementArea; class IfcSurfaceStyle; class IfcSurfaceStyleLighting; class IfcSurfaceStyleRefraction; class IfcSurfaceStyleRendering; class IfcSurfaceStyleShading; class IfcSurfaceStyleWithTextures; class IfcSurfaceTexture; class IfcSweptAreaSolid; class IfcSweptDiskSolid; class IfcSweptDiskSolidPolygonal; class IfcSweptSurface; class IfcSwitchingDevice; class IfcSwitchingDeviceType; class IfcSystem; class IfcSystemFurnitureElement; class IfcSystemFurnitureElementType; class IfcTShapeProfileDef; class IfcTable; class IfcTableColumn; class IfcTableRow; class IfcTank; class IfcTankType; class IfcTask; class IfcTaskTime; class IfcTaskTimeRecurring; class IfcTaskType; class IfcTelecomAddress; class IfcTendon; class IfcTendonAnchor; class IfcTendonAnchorType; class IfcTendonType; class IfcTessellatedFaceSet; class IfcTessellatedItem; class IfcTextLiteral; class IfcTextLiteralWithExtent; class IfcTextStyle; class IfcTextStyleFontModel; class IfcTextStyleForDefinedFont; class IfcTextStyleTextModel; class IfcTextureCoordinate; class IfcTextureCoordinateGenerator; class IfcTextureMap; class IfcTextureVertex; class IfcTextureVertexList; class IfcTimePeriod; class IfcTimeSeries; class IfcTimeSeriesValue; class IfcTopologicalRepresentationItem; class IfcTopologyRepresentation; class IfcTransformer; class IfcTransformerType; class IfcTransportElement; class IfcTransportElementType; class IfcTrapeziumProfileDef; class IfcTriangulatedFaceSet; class IfcTrimmedCurve; class IfcTubeBundle; class IfcTubeBundleType; class IfcTypeObject; class IfcTypeProcess; class IfcTypeProduct; class IfcTypeResource; class IfcUShapeProfileDef; class IfcUnitAssignment; class IfcUnitaryControlElement; class IfcUnitaryControlElementType; class IfcUnitaryEquipment; class IfcUnitaryEquipmentType; class IfcValve; class IfcValveType; class IfcVector; class IfcVertex; class IfcVertexLoop; class IfcVertexPoint; class IfcVibrationIsolator; class IfcVibrationIsolatorType; class IfcVirtualElement; class IfcVirtualGridIntersection; class IfcVoidingFeature; class IfcWall; class IfcWallElementedCase; class IfcWallStandardCase; class IfcWallType; class IfcWasteTerminal; class IfcWasteTerminalType; class IfcWindow; class IfcWindowLiningProperties; class IfcWindowPanelProperties; class IfcWindowStandardCase; class IfcWindowStyle; class IfcWindowType; class IfcWorkCalendar; class IfcWorkControl; class IfcWorkPlan; class IfcWorkSchedule; class IfcWorkTime; class IfcZShapeProfileDef; class IfcZone; class IfcAbsorbedDoseMeasure; class IfcAccelerationMeasure; class IfcAmountOfSubstanceMeasure; class IfcAngularVelocityMeasure; class IfcArcIndex; class IfcAreaDensityMeasure; class IfcAreaMeasure; class IfcBinary; class IfcBoolean; class IfcBoxAlignment; class IfcCardinalPointReference; class IfcComplexNumber; class IfcCompoundPlaneAngleMeasure; class IfcContextDependentMeasure; class IfcCountMeasure; class IfcCurvatureMeasure; class IfcDate; class IfcDateTime; class IfcDayInMonthNumber; class IfcDayInWeekNumber; class IfcDescriptiveMeasure; class IfcDimensionCount; class IfcDoseEquivalentMeasure; class IfcDuration; class IfcDynamicViscosityMeasure; class IfcElectricCapacitanceMeasure; class IfcElectricChargeMeasure; class IfcElectricConductanceMeasure; class IfcElectricCurrentMeasure; class IfcElectricResistanceMeasure; class IfcElectricVoltageMeasure; class IfcEnergyMeasure; class IfcFontStyle; class IfcFontVariant; class IfcFontWeight; class IfcForceMeasure; class IfcFrequencyMeasure; class IfcGloballyUniqueId; class IfcHeatFluxDensityMeasure; class IfcHeatingValueMeasure; class IfcIdentifier; class IfcIlluminanceMeasure; class IfcInductanceMeasure; class IfcInteger; class IfcIntegerCountRateMeasure; class IfcIonConcentrationMeasure; class IfcIsothermalMoistureCapacityMeasure; class IfcKinematicViscosityMeasure; class IfcLabel; class IfcLanguageId; class IfcLengthMeasure; class IfcLineIndex; class IfcLinearForceMeasure; class IfcLinearMomentMeasure; class IfcLinearStiffnessMeasure; class IfcLinearVelocityMeasure; class IfcLogical; class IfcLuminousFluxMeasure; class IfcLuminousIntensityDistributionMeasure; class IfcLuminousIntensityMeasure; class IfcMagneticFluxDensityMeasure; class IfcMagneticFluxMeasure; class IfcMassDensityMeasure; class IfcMassFlowRateMeasure; class IfcMassMeasure; class IfcMassPerLengthMeasure; class IfcModulusOfElasticityMeasure; class IfcModulusOfLinearSubgradeReactionMeasure; class IfcModulusOfRotationalSubgradeReactionMeasure; class IfcModulusOfSubgradeReactionMeasure; class IfcMoistureDiffusivityMeasure; class IfcMolecularWeightMeasure; class IfcMomentOfInertiaMeasure; class IfcMonetaryMeasure; class IfcMonthInYearNumber; class IfcNonNegativeLengthMeasure; class IfcNormalisedRatioMeasure; class IfcNumericMeasure; class IfcPHMeasure; class IfcParameterValue; class IfcPlanarForceMeasure; class IfcPlaneAngleMeasure; class IfcPositiveInteger; class IfcPositiveLengthMeasure; class IfcPositivePlaneAngleMeasure; class IfcPositiveRatioMeasure; class IfcPowerMeasure; class IfcPresentableText; class IfcPressureMeasure; class IfcPropertySetDefinitionSet; class IfcRadioActivityMeasure; class IfcRatioMeasure; class IfcReal; class IfcRotationalFrequencyMeasure; class IfcRotationalMassMeasure; class IfcRotationalStiffnessMeasure; class IfcSectionModulusMeasure; class IfcSectionalAreaIntegralMeasure; class IfcShearModulusMeasure; class IfcSolidAngleMeasure; class IfcSoundPowerLevelMeasure; class IfcSoundPowerMeasure; class IfcSoundPressureLevelMeasure; class IfcSoundPressureMeasure; class IfcSpecificHeatCapacityMeasure; class IfcSpecularExponent; class IfcSpecularRoughness; class IfcStrippedOptional; class IfcTemperatureGradientMeasure; class IfcTemperatureRateOfChangeMeasure; class IfcText; class IfcTextAlignment; class IfcTextDecoration; class IfcTextFontName; class IfcTextTransformation; class IfcThermalAdmittanceMeasure; class IfcThermalConductivityMeasure; class IfcThermalExpansionCoefficientMeasure; class IfcThermalResistanceMeasure; class IfcThermalTransmittanceMeasure; class IfcThermodynamicTemperatureMeasure; class IfcTime; class IfcTimeMeasure; class IfcTimeStamp; class IfcTorqueMeasure; class IfcURIReference; class IfcVaporPermeabilityMeasure; class IfcVolumeMeasure; class IfcVolumetricFlowRateMeasure; class IfcWarpingConstantMeasure; class IfcWarpingMomentMeasure; +class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; class IfcActuatorType; class IfcAddress; class IfcAdvancedBrep; class IfcAdvancedBrepWithVoids; class IfcAdvancedFace; class IfcAirTerminal; class IfcAirTerminalBox; class IfcAirTerminalBoxType; class IfcAirTerminalType; class IfcAirToAirHeatRecovery; class IfcAirToAirHeatRecoveryType; class IfcAlarm; class IfcAlarmType; class IfcAnnotation; class IfcAnnotationFillArea; class IfcApplication; class IfcAppliedValue; class IfcApproval; class IfcApprovalRelationship; class IfcArbitraryClosedProfileDef; class IfcArbitraryOpenProfileDef; class IfcArbitraryProfileDefWithVoids; class IfcAsset; class IfcAsymmetricIShapeProfileDef; class IfcAudioVisualAppliance; class IfcAudioVisualApplianceType; class IfcAxis1Placement; class IfcAxis2Placement2D; class IfcAxis2Placement3D; class IfcBSplineCurve; class IfcBSplineCurveWithKnots; class IfcBSplineSurface; class IfcBSplineSurfaceWithKnots; class IfcBeam; class IfcBeamStandardCase; class IfcBeamType; class IfcBlobTexture; class IfcBlock; class IfcBoiler; class IfcBoilerType; class IfcBooleanClippingResult; class IfcBooleanResult; class IfcBoundaryCondition; class IfcBoundaryCurve; class IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping; class IfcBoundedCurve; class IfcBoundedSurface; class IfcBoundingBox; class IfcBoxedHalfSpace; class IfcBuilding; class IfcBuildingElement; class IfcBuildingElementPart; class IfcBuildingElementPartType; class IfcBuildingElementProxy; class IfcBuildingElementProxyType; class IfcBuildingElementType; class IfcBuildingStorey; class IfcBuildingSystem; class IfcBurner; class IfcBurnerType; class IfcCShapeProfileDef; class IfcCableCarrierFitting; class IfcCableCarrierFittingType; class IfcCableCarrierSegment; class IfcCableCarrierSegmentType; class IfcCableFitting; class IfcCableFittingType; class IfcCableSegment; class IfcCableSegmentType; class IfcCartesianPoint; class IfcCartesianPointList; class IfcCartesianPointList2D; class IfcCartesianPointList3D; class IfcCartesianTransformationOperator; class IfcCartesianTransformationOperator2D; class IfcCartesianTransformationOperator2DnonUniform; class IfcCartesianTransformationOperator3D; class IfcCartesianTransformationOperator3DnonUniform; class IfcCenterLineProfileDef; class IfcChiller; class IfcChillerType; class IfcChimney; class IfcChimneyType; class IfcCircle; class IfcCircleHollowProfileDef; class IfcCircleProfileDef; class IfcCivilElement; class IfcCivilElementType; class IfcClassification; class IfcClassificationReference; class IfcClosedShell; class IfcCoil; class IfcCoilType; class IfcColourRgb; class IfcColourRgbList; class IfcColourSpecification; class IfcColumn; class IfcColumnStandardCase; class IfcColumnType; class IfcCommunicationsAppliance; class IfcCommunicationsApplianceType; class IfcComplexProperty; class IfcComplexPropertyTemplate; class IfcCompositeCurve; class IfcCompositeCurveOnSurface; class IfcCompositeCurveSegment; class IfcCompositeProfileDef; class IfcCompressor; class IfcCompressorType; class IfcCondenser; class IfcCondenserType; class IfcConic; class IfcConnectedFaceSet; class IfcConnectionCurveGeometry; class IfcConnectionGeometry; class IfcConnectionPointEccentricity; class IfcConnectionPointGeometry; class IfcConnectionSurfaceGeometry; class IfcConnectionVolumeGeometry; class IfcConstraint; class IfcConstructionEquipmentResource; class IfcConstructionEquipmentResourceType; class IfcConstructionMaterialResource; class IfcConstructionMaterialResourceType; class IfcConstructionProductResource; class IfcConstructionProductResourceType; class IfcConstructionResource; class IfcConstructionResourceType; class IfcContext; class IfcContextDependentUnit; class IfcControl; class IfcController; class IfcControllerType; class IfcConversionBasedUnit; class IfcConversionBasedUnitWithOffset; class IfcCooledBeam; class IfcCooledBeamType; class IfcCoolingTower; class IfcCoolingTowerType; class IfcCoordinateOperation; class IfcCoordinateReferenceSystem; class IfcCostItem; class IfcCostSchedule; class IfcCostValue; class IfcCovering; class IfcCoveringType; class IfcCrewResource; class IfcCrewResourceType; class IfcCsgPrimitive3D; class IfcCsgSolid; class IfcCurrencyRelationship; class IfcCurtainWall; class IfcCurtainWallType; class IfcCurve; class IfcCurveBoundedPlane; class IfcCurveBoundedSurface; class IfcCurveStyle; class IfcCurveStyleFont; class IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern; class IfcCylindricalSurface; class IfcDamper; class IfcDamperType; class IfcDerivedProfileDef; class IfcDerivedUnit; class IfcDerivedUnitElement; class IfcDimensionalExponents; class IfcDirection; class IfcDiscreteAccessory; class IfcDiscreteAccessoryType; class IfcDistributionChamberElement; class IfcDistributionChamberElementType; class IfcDistributionCircuit; class IfcDistributionControlElement; class IfcDistributionControlElementType; class IfcDistributionElement; class IfcDistributionElementType; class IfcDistributionFlowElement; class IfcDistributionFlowElementType; class IfcDistributionPort; class IfcDistributionSystem; class IfcDocumentInformation; class IfcDocumentInformationRelationship; class IfcDocumentReference; class IfcDoor; class IfcDoorLiningProperties; class IfcDoorPanelProperties; class IfcDoorStandardCase; class IfcDoorStyle; class IfcDoorType; class IfcDraughtingPreDefinedColour; class IfcDraughtingPreDefinedCurveFont; class IfcDuctFitting; class IfcDuctFittingType; class IfcDuctSegment; class IfcDuctSegmentType; class IfcDuctSilencer; class IfcDuctSilencerType; class IfcEdge; class IfcEdgeCurve; class IfcEdgeLoop; class IfcElectricAppliance; class IfcElectricApplianceType; class IfcElectricDistributionBoard; class IfcElectricDistributionBoardType; class IfcElectricFlowStorageDevice; class IfcElectricFlowStorageDeviceType; class IfcElectricGenerator; class IfcElectricGeneratorType; class IfcElectricMotor; class IfcElectricMotorType; class IfcElectricTimeControl; class IfcElectricTimeControlType; class IfcElement; class IfcElementAssembly; class IfcElementAssemblyType; class IfcElementComponent; class IfcElementComponentType; class IfcElementQuantity; class IfcElementType; class IfcElementarySurface; class IfcEllipse; class IfcEllipseProfileDef; class IfcEnergyConversionDevice; class IfcEnergyConversionDeviceType; class IfcEngine; class IfcEngineType; class IfcEvaporativeCooler; class IfcEvaporativeCoolerType; class IfcEvaporator; class IfcEvaporatorType; class IfcEvent; class IfcEventTime; class IfcEventType; class IfcExtendedProperties; class IfcExternalInformation; class IfcExternalReference; class IfcExternalReferenceRelationship; class IfcExternalSpatialElement; class IfcExternalSpatialStructureElement; class IfcExternallyDefinedHatchStyle; class IfcExternallyDefinedSurfaceStyle; class IfcExternallyDefinedTextFont; class IfcExtrudedAreaSolid; class IfcExtrudedAreaSolidTapered; class IfcFace; class IfcFaceBasedSurfaceModel; class IfcFaceBound; class IfcFaceOuterBound; class IfcFaceSurface; class IfcFacetedBrep; class IfcFacetedBrepWithVoids; class IfcFailureConnectionCondition; class IfcFan; class IfcFanType; class IfcFastener; class IfcFastenerType; class IfcFeatureElement; class IfcFeatureElementAddition; class IfcFeatureElementSubtraction; class IfcFillAreaStyle; class IfcFillAreaStyleHatching; class IfcFillAreaStyleTiles; class IfcFilter; class IfcFilterType; class IfcFireSuppressionTerminal; class IfcFireSuppressionTerminalType; class IfcFixedReferenceSweptAreaSolid; class IfcFlowController; class IfcFlowControllerType; class IfcFlowFitting; class IfcFlowFittingType; class IfcFlowInstrument; class IfcFlowInstrumentType; class IfcFlowMeter; class IfcFlowMeterType; class IfcFlowMovingDevice; class IfcFlowMovingDeviceType; class IfcFlowSegment; class IfcFlowSegmentType; class IfcFlowStorageDevice; class IfcFlowStorageDeviceType; class IfcFlowTerminal; class IfcFlowTerminalType; class IfcFlowTreatmentDevice; class IfcFlowTreatmentDeviceType; class IfcFooting; class IfcFootingType; class IfcFurnishingElement; class IfcFurnishingElementType; class IfcFurniture; class IfcFurnitureType; class IfcGeographicElement; class IfcGeographicElementType; class IfcGeometricCurveSet; class IfcGeometricRepresentationContext; class IfcGeometricRepresentationItem; class IfcGeometricRepresentationSubContext; class IfcGeometricSet; class IfcGrid; class IfcGridAxis; class IfcGridPlacement; class IfcGroup; class IfcHalfSpaceSolid; class IfcHeatExchanger; class IfcHeatExchangerType; class IfcHumidifier; class IfcHumidifierType; class IfcIShapeProfileDef; class IfcImageTexture; class IfcIndexedColourMap; class IfcIndexedPolyCurve; class IfcIndexedPolygonalFace; class IfcIndexedPolygonalFaceWithVoids; class IfcIndexedTextureMap; class IfcIndexedTriangleTextureMap; class IfcInterceptor; class IfcInterceptorType; class IfcIntersectionCurve; class IfcInventory; class IfcIrregularTimeSeries; class IfcIrregularTimeSeriesValue; class IfcJunctionBox; class IfcJunctionBoxType; class IfcLShapeProfileDef; class IfcLaborResource; class IfcLaborResourceType; class IfcLagTime; class IfcLamp; class IfcLampType; class IfcLibraryInformation; class IfcLibraryReference; class IfcLightDistributionData; class IfcLightFixture; class IfcLightFixtureType; class IfcLightIntensityDistribution; class IfcLightSource; class IfcLightSourceAmbient; class IfcLightSourceDirectional; class IfcLightSourceGoniometric; class IfcLightSourcePositional; class IfcLightSourceSpot; class IfcLine; class IfcLocalPlacement; class IfcLoop; class IfcManifoldSolidBrep; class IfcMapConversion; class IfcMappedItem; class IfcMaterial; class IfcMaterialClassificationRelationship; class IfcMaterialConstituent; class IfcMaterialConstituentSet; class IfcMaterialDefinition; class IfcMaterialDefinitionRepresentation; class IfcMaterialLayer; class IfcMaterialLayerSet; class IfcMaterialLayerSetUsage; class IfcMaterialLayerWithOffsets; class IfcMaterialList; class IfcMaterialProfile; class IfcMaterialProfileSet; class IfcMaterialProfileSetUsage; class IfcMaterialProfileSetUsageTapering; class IfcMaterialProfileWithOffsets; class IfcMaterialProperties; class IfcMaterialRelationship; class IfcMaterialUsageDefinition; class IfcMeasureWithUnit; class IfcMechanicalFastener; class IfcMechanicalFastenerType; class IfcMedicalDevice; class IfcMedicalDeviceType; class IfcMember; class IfcMemberStandardCase; class IfcMemberType; class IfcMetric; class IfcMirroredProfileDef; class IfcMonetaryUnit; class IfcMotorConnection; class IfcMotorConnectionType; class IfcNamedUnit; class IfcObject; class IfcObjectDefinition; class IfcObjectPlacement; class IfcObjective; class IfcOccupant; class IfcOffsetCurve2D; class IfcOffsetCurve3D; class IfcOpenShell; class IfcOpeningElement; class IfcOpeningStandardCase; class IfcOrganization; class IfcOrganizationRelationship; class IfcOrientedEdge; class IfcOuterBoundaryCurve; class IfcOutlet; class IfcOutletType; class IfcOwnerHistory; class IfcParameterizedProfileDef; class IfcPath; class IfcPcurve; class IfcPerformanceHistory; class IfcPermeableCoveringProperties; class IfcPermit; class IfcPerson; class IfcPersonAndOrganization; class IfcPhysicalComplexQuantity; class IfcPhysicalQuantity; class IfcPhysicalSimpleQuantity; class IfcPile; class IfcPileType; class IfcPipeFitting; class IfcPipeFittingType; class IfcPipeSegment; class IfcPipeSegmentType; class IfcPixelTexture; class IfcPlacement; class IfcPlanarBox; class IfcPlanarExtent; class IfcPlane; class IfcPlate; class IfcPlateStandardCase; class IfcPlateType; class IfcPoint; class IfcPointOnCurve; class IfcPointOnSurface; class IfcPolyLoop; class IfcPolygonalBoundedHalfSpace; class IfcPolygonalFaceSet; class IfcPolyline; class IfcPort; class IfcPostalAddress; class IfcPreDefinedColour; class IfcPreDefinedCurveFont; class IfcPreDefinedItem; class IfcPreDefinedProperties; class IfcPreDefinedPropertySet; class IfcPreDefinedTextFont; class IfcPresentationItem; class IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle; class IfcPresentationStyle; class IfcPresentationStyleAssignment; class IfcProcedure; class IfcProcedureType; class IfcProcess; class IfcProduct; class IfcProductDefinitionShape; class IfcProductRepresentation; class IfcProfileDef; class IfcProfileProperties; class IfcProject; class IfcProjectLibrary; class IfcProjectOrder; class IfcProjectedCRS; class IfcProjectionElement; class IfcProperty; class IfcPropertyAbstraction; class IfcPropertyBoundedValue; class IfcPropertyDefinition; class IfcPropertyDependencyRelationship; class IfcPropertyEnumeratedValue; class IfcPropertyEnumeration; class IfcPropertyListValue; class IfcPropertyReferenceValue; class IfcPropertySet; class IfcPropertySetDefinition; class IfcPropertySetTemplate; class IfcPropertySingleValue; class IfcPropertyTableValue; class IfcPropertyTemplate; class IfcPropertyTemplateDefinition; class IfcProtectiveDevice; class IfcProtectiveDeviceTrippingUnit; class IfcProtectiveDeviceTrippingUnitType; class IfcProtectiveDeviceType; class IfcProxy; class IfcPump; class IfcPumpType; class IfcQuantityArea; class IfcQuantityCount; class IfcQuantityLength; class IfcQuantitySet; class IfcQuantityTime; class IfcQuantityVolume; class IfcQuantityWeight; class IfcRailing; class IfcRailingType; class IfcRamp; class IfcRampFlight; class IfcRampFlightType; class IfcRampType; class IfcRationalBSplineCurveWithKnots; class IfcRationalBSplineSurfaceWithKnots; class IfcRectangleHollowProfileDef; class IfcRectangleProfileDef; class IfcRectangularPyramid; class IfcRectangularTrimmedSurface; class IfcRecurrencePattern; class IfcReference; class IfcRegularTimeSeries; class IfcReinforcementBarProperties; class IfcReinforcementDefinitionProperties; class IfcReinforcingBar; class IfcReinforcingBarType; class IfcReinforcingElement; class IfcReinforcingElementType; class IfcReinforcingMesh; class IfcReinforcingMeshType; class IfcRelAggregates; class IfcRelAssigns; class IfcRelAssignsToActor; class IfcRelAssignsToControl; class IfcRelAssignsToGroup; class IfcRelAssignsToGroupByFactor; class IfcRelAssignsToProcess; class IfcRelAssignsToProduct; class IfcRelAssignsToResource; class IfcRelAssociates; class IfcRelAssociatesApproval; class IfcRelAssociatesClassification; class IfcRelAssociatesConstraint; class IfcRelAssociatesDocument; class IfcRelAssociatesLibrary; class IfcRelAssociatesMaterial; class IfcRelConnects; class IfcRelConnectsElements; class IfcRelConnectsPathElements; class IfcRelConnectsPortToElement; class IfcRelConnectsPorts; class IfcRelConnectsStructuralActivity; class IfcRelConnectsStructuralMember; class IfcRelConnectsWithEccentricity; class IfcRelConnectsWithRealizingElements; class IfcRelContainedInSpatialStructure; class IfcRelCoversBldgElements; class IfcRelCoversSpaces; class IfcRelDeclares; class IfcRelDecomposes; class IfcRelDefines; class IfcRelDefinesByObject; class IfcRelDefinesByProperties; class IfcRelDefinesByTemplate; class IfcRelDefinesByType; class IfcRelFillsElement; class IfcRelFlowControlElements; class IfcRelInterferesElements; class IfcRelNests; class IfcRelProjectsElement; class IfcRelReferencedInSpatialStructure; class IfcRelSequence; class IfcRelServicesBuildings; class IfcRelSpaceBoundary; class IfcRelSpaceBoundary1stLevel; class IfcRelSpaceBoundary2ndLevel; class IfcRelVoidsElement; class IfcRelationship; class IfcReparametrisedCompositeCurveSegment; class IfcRepresentation; class IfcRepresentationContext; class IfcRepresentationItem; class IfcRepresentationMap; class IfcResource; class IfcResourceApprovalRelationship; class IfcResourceConstraintRelationship; class IfcResourceLevelRelationship; class IfcResourceTime; class IfcRevolvedAreaSolid; class IfcRevolvedAreaSolidTapered; class IfcRightCircularCone; class IfcRightCircularCylinder; class IfcRoof; class IfcRoofType; class IfcRoot; class IfcRoundedRectangleProfileDef; class IfcSIUnit; class IfcSanitaryTerminal; class IfcSanitaryTerminalType; class IfcSchedulingTime; class IfcSeamCurve; class IfcSectionProperties; class IfcSectionReinforcementProperties; class IfcSectionedSpine; class IfcSensor; class IfcSensorType; class IfcShadingDevice; class IfcShadingDeviceType; class IfcShapeAspect; class IfcShapeModel; class IfcShapeRepresentation; class IfcShellBasedSurfaceModel; class IfcSimpleProperty; class IfcSimplePropertyTemplate; class IfcSite; class IfcSlab; class IfcSlabElementedCase; class IfcSlabStandardCase; class IfcSlabType; class IfcSlippageConnectionCondition; class IfcSolarDevice; class IfcSolarDeviceType; class IfcSolidModel; class IfcSpace; class IfcSpaceHeater; class IfcSpaceHeaterType; class IfcSpaceType; class IfcSpatialElement; class IfcSpatialElementType; class IfcSpatialStructureElement; class IfcSpatialStructureElementType; class IfcSpatialZone; class IfcSpatialZoneType; class IfcSphere; class IfcSphericalSurface; class IfcStackTerminal; class IfcStackTerminalType; class IfcStair; class IfcStairFlight; class IfcStairFlightType; class IfcStairType; class IfcStructuralAction; class IfcStructuralActivity; class IfcStructuralAnalysisModel; class IfcStructuralConnection; class IfcStructuralConnectionCondition; class IfcStructuralCurveAction; class IfcStructuralCurveConnection; class IfcStructuralCurveMember; class IfcStructuralCurveMemberVarying; class IfcStructuralCurveReaction; class IfcStructuralItem; class IfcStructuralLinearAction; class IfcStructuralLoad; class IfcStructuralLoadCase; class IfcStructuralLoadConfiguration; class IfcStructuralLoadGroup; class IfcStructuralLoadLinearForce; class IfcStructuralLoadOrResult; class IfcStructuralLoadPlanarForce; class IfcStructuralLoadSingleDisplacement; class IfcStructuralLoadSingleDisplacementDistortion; class IfcStructuralLoadSingleForce; class IfcStructuralLoadSingleForceWarping; class IfcStructuralLoadStatic; class IfcStructuralLoadTemperature; class IfcStructuralMember; class IfcStructuralPlanarAction; class IfcStructuralPointAction; class IfcStructuralPointConnection; class IfcStructuralPointReaction; class IfcStructuralReaction; class IfcStructuralResultGroup; class IfcStructuralSurfaceAction; class IfcStructuralSurfaceConnection; class IfcStructuralSurfaceMember; class IfcStructuralSurfaceMemberVarying; class IfcStructuralSurfaceReaction; class IfcStyleModel; class IfcStyledItem; class IfcStyledRepresentation; class IfcSubContractResource; class IfcSubContractResourceType; class IfcSubedge; class IfcSurface; class IfcSurfaceCurve; class IfcSurfaceCurveSweptAreaSolid; class IfcSurfaceFeature; class IfcSurfaceOfLinearExtrusion; class IfcSurfaceOfRevolution; class IfcSurfaceReinforcementArea; class IfcSurfaceStyle; class IfcSurfaceStyleLighting; class IfcSurfaceStyleRefraction; class IfcSurfaceStyleRendering; class IfcSurfaceStyleShading; class IfcSurfaceStyleWithTextures; class IfcSurfaceTexture; class IfcSweptAreaSolid; class IfcSweptDiskSolid; class IfcSweptDiskSolidPolygonal; class IfcSweptSurface; class IfcSwitchingDevice; class IfcSwitchingDeviceType; class IfcSystem; class IfcSystemFurnitureElement; class IfcSystemFurnitureElementType; class IfcTShapeProfileDef; class IfcTable; class IfcTableColumn; class IfcTableRow; class IfcTank; class IfcTankType; class IfcTask; class IfcTaskTime; class IfcTaskTimeRecurring; class IfcTaskType; class IfcTelecomAddress; class IfcTendon; class IfcTendonAnchor; class IfcTendonAnchorType; class IfcTendonType; class IfcTessellatedFaceSet; class IfcTessellatedItem; class IfcTextLiteral; class IfcTextLiteralWithExtent; class IfcTextStyle; class IfcTextStyleFontModel; class IfcTextStyleForDefinedFont; class IfcTextStyleTextModel; class IfcTextureCoordinate; class IfcTextureCoordinateGenerator; class IfcTextureMap; class IfcTextureVertex; class IfcTextureVertexList; class IfcTimePeriod; class IfcTimeSeries; class IfcTimeSeriesValue; class IfcTopologicalRepresentationItem; class IfcTopologyRepresentation; class IfcToroidalSurface; class IfcTransformer; class IfcTransformerType; class IfcTransportElement; class IfcTransportElementType; class IfcTrapeziumProfileDef; class IfcTriangulatedFaceSet; class IfcTrimmedCurve; class IfcTubeBundle; class IfcTubeBundleType; class IfcTypeObject; class IfcTypeProcess; class IfcTypeProduct; class IfcTypeResource; class IfcUShapeProfileDef; class IfcUnitAssignment; class IfcUnitaryControlElement; class IfcUnitaryControlElementType; class IfcUnitaryEquipment; class IfcUnitaryEquipmentType; class IfcValve; class IfcValveType; class IfcVector; class IfcVertex; class IfcVertexLoop; class IfcVertexPoint; class IfcVibrationIsolator; class IfcVibrationIsolatorType; class IfcVirtualElement; class IfcVirtualGridIntersection; class IfcVoidingFeature; class IfcWall; class IfcWallElementedCase; class IfcWallStandardCase; class IfcWallType; class IfcWasteTerminal; class IfcWasteTerminalType; class IfcWindow; class IfcWindowLiningProperties; class IfcWindowPanelProperties; class IfcWindowStandardCase; class IfcWindowStyle; class IfcWindowType; class IfcWorkCalendar; class IfcWorkControl; class IfcWorkPlan; class IfcWorkSchedule; class IfcWorkTime; class IfcZShapeProfileDef; class IfcZone; class IfcAbsorbedDoseMeasure; class IfcAccelerationMeasure; class IfcAmountOfSubstanceMeasure; class IfcAngularVelocityMeasure; class IfcArcIndex; class IfcAreaDensityMeasure; class IfcAreaMeasure; class IfcBinary; class IfcBoolean; class IfcBoxAlignment; class IfcCardinalPointReference; class IfcComplexNumber; class IfcCompoundPlaneAngleMeasure; class IfcContextDependentMeasure; class IfcCountMeasure; class IfcCurvatureMeasure; class IfcDate; class IfcDateTime; class IfcDayInMonthNumber; class IfcDayInWeekNumber; class IfcDescriptiveMeasure; class IfcDimensionCount; class IfcDoseEquivalentMeasure; class IfcDuration; class IfcDynamicViscosityMeasure; class IfcElectricCapacitanceMeasure; class IfcElectricChargeMeasure; class IfcElectricConductanceMeasure; class IfcElectricCurrentMeasure; class IfcElectricResistanceMeasure; class IfcElectricVoltageMeasure; class IfcEnergyMeasure; class IfcFontStyle; class IfcFontVariant; class IfcFontWeight; class IfcForceMeasure; class IfcFrequencyMeasure; class IfcGloballyUniqueId; class IfcHeatFluxDensityMeasure; class IfcHeatingValueMeasure; class IfcIdentifier; class IfcIlluminanceMeasure; class IfcInductanceMeasure; class IfcInteger; class IfcIntegerCountRateMeasure; class IfcIonConcentrationMeasure; class IfcIsothermalMoistureCapacityMeasure; class IfcKinematicViscosityMeasure; class IfcLabel; class IfcLanguageId; class IfcLengthMeasure; class IfcLineIndex; class IfcLinearForceMeasure; class IfcLinearMomentMeasure; class IfcLinearStiffnessMeasure; class IfcLinearVelocityMeasure; class IfcLogical; class IfcLuminousFluxMeasure; class IfcLuminousIntensityDistributionMeasure; class IfcLuminousIntensityMeasure; class IfcMagneticFluxDensityMeasure; class IfcMagneticFluxMeasure; class IfcMassDensityMeasure; class IfcMassFlowRateMeasure; class IfcMassMeasure; class IfcMassPerLengthMeasure; class IfcModulusOfElasticityMeasure; class IfcModulusOfLinearSubgradeReactionMeasure; class IfcModulusOfRotationalSubgradeReactionMeasure; class IfcModulusOfSubgradeReactionMeasure; class IfcMoistureDiffusivityMeasure; class IfcMolecularWeightMeasure; class IfcMomentOfInertiaMeasure; class IfcMonetaryMeasure; class IfcMonthInYearNumber; class IfcNonNegativeLengthMeasure; class IfcNormalisedRatioMeasure; class IfcNumericMeasure; class IfcPHMeasure; class IfcParameterValue; class IfcPlanarForceMeasure; class IfcPlaneAngleMeasure; class IfcPositiveInteger; class IfcPositiveLengthMeasure; class IfcPositivePlaneAngleMeasure; class IfcPositiveRatioMeasure; class IfcPowerMeasure; class IfcPresentableText; class IfcPressureMeasure; class IfcPropertySetDefinitionSet; class IfcRadioActivityMeasure; class IfcRatioMeasure; class IfcReal; class IfcRotationalFrequencyMeasure; class IfcRotationalMassMeasure; class IfcRotationalStiffnessMeasure; class IfcSectionModulusMeasure; class IfcSectionalAreaIntegralMeasure; class IfcShearModulusMeasure; class IfcSolidAngleMeasure; class IfcSoundPowerLevelMeasure; class IfcSoundPowerMeasure; class IfcSoundPressureLevelMeasure; class IfcSoundPressureMeasure; class IfcSpecificHeatCapacityMeasure; class IfcSpecularExponent; class IfcSpecularRoughness; class IfcTemperatureGradientMeasure; class IfcTemperatureRateOfChangeMeasure; class IfcText; class IfcTextAlignment; class IfcTextDecoration; class IfcTextFontName; class IfcTextTransformation; class IfcThermalAdmittanceMeasure; class IfcThermalConductivityMeasure; class IfcThermalExpansionCoefficientMeasure; class IfcThermalResistanceMeasure; class IfcThermalTransmittanceMeasure; class IfcThermodynamicTemperatureMeasure; class IfcTime; class IfcTimeMeasure; class IfcTimeStamp; class IfcTorqueMeasure; class IfcURIReference; class IfcVaporPermeabilityMeasure; class IfcVolumeMeasure; class IfcVolumetricFlowRateMeasure; class IfcWarpingConstantMeasure; class IfcWarpingMomentMeasure; /// The actor select type allows a person, or an organization, or a person associated with an organization to be referenced. /// @@ -1029,7 +1029,7 @@ struct IfcBuildingElementProxyTypeEnum { /// USERDEFINED /// /// NOTDEFINED -typedef enum {IfcBuildingElementProxyType_COMPLEX, IfcBuildingElementProxyType_ELEMENT, IfcBuildingElementProxyType_PARTIAL, IfcBuildingElementProxyType_PROVISIONFORVOID, IfcBuildingElementProxyType_USERDEFINED, IfcBuildingElementProxyType_NOTDEFINED} Value; +typedef enum {IfcBuildingElementProxyType_COMPLEX, IfcBuildingElementProxyType_ELEMENT, IfcBuildingElementProxyType_PARTIAL, IfcBuildingElementProxyType_PROVISIONFORVOID, IfcBuildingElementProxyType_PROVISIONFORSPACE, IfcBuildingElementProxyType_USERDEFINED, IfcBuildingElementProxyType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); }; @@ -2599,7 +2599,7 @@ struct IfcExternalSpatialElementTypeEnum { /// /// HISTORY New enumeration /// in IFC2x4. -typedef enum {IfcExternalSpatialElementType_EXTERNAL, IfcExternalSpatialElementType_EXTERNAL_EARTH, IfcExternalSpatialElementType_EXTERNAL_WATER, IfcExternalSpatialElementType_EXTERNAL_FIRE, IfcExternalSpatialElementType_USERDEFINED, IfcExternalSpatialElementType_NOTDEFIEND} Value; +typedef enum {IfcExternalSpatialElementType_EXTERNAL, IfcExternalSpatialElementType_EXTERNAL_EARTH, IfcExternalSpatialElementType_EXTERNAL_WATER, IfcExternalSpatialElementType_EXTERNAL_FIRE, IfcExternalSpatialElementType_USERDEFINED, IfcExternalSpatialElementType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); }; @@ -3802,6 +3802,12 @@ typedef enum {IfcPlateType_CURTAIN_PANEL, IfcPlateType_SHEET, IfcPlateType_USERD IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); }; +struct IfcPreferredSurfaceCurveRepresentation { + +typedef enum {IfcPreferredSurfaceCurveRepresentation_CURVE3D, IfcPreferredSurfaceCurveRepresentation_PCURVE_S1, IfcPreferredSurfaceCurveRepresentation_PCURVE_S2} Value; +IFC_PARSE_API static const char* ToString(Value v); +IFC_PARSE_API static Value FromString(const std::string& s); +}; struct IfcProcedureTypeEnum { /// The IfcProcedureTypeEnum defines the range of different types of procedure that can be specified. /// @@ -4426,7 +4432,7 @@ struct IfcSensorTypeEnum { /// WINDSENSOR: A device that senses or detects airflow speed and direction. /// USERDEFINED: User-defined type. /// NOTDEFINED: Undefined type. -typedef enum {IfcSensorType_CO2SENSOR, IfcSensorType_CONDUCTANCESENSOR, IfcSensorType_CONTACTSENSOR, IfcSensorType_FIRESENSOR, IfcSensorType_FLOWSENSOR, IfcSensorType_FROSTSENSOR, IfcSensorType_GASSENSOR, IfcSensorType_HEATSENSOR, IfcSensorType_HUMIDITYSENSOR, IfcSensorType_IDENTIFIERSENSOR, IfcSensorType_IONCONCENTRATIONSENSOR, IfcSensorType_LEVELSENSOR, IfcSensorType_LIGHTSENSOR, IfcSensorType_MOISTURESENSOR, IfcSensorType_MOVEMENTSENSOR, IfcSensorType_PHSENSOR, IfcSensorType_PRESSURESENSOR, IfcSensorType_RADIATIONSENSOR, IfcSensorType_RADIOACTIVITYSENSOR, IfcSensorType_SMOKESENSOR, IfcSensorType_SOUNDSENSOR, IfcSensorType_TEMPERATURESENSOR, IfcSensorType_WINDSENSOR, IfcSensorType_USERDEFINED, IfcSensorType_NOTDEFINED} Value; +typedef enum {IfcSensorType_COSENSOR, IfcSensorType_CO2SENSOR, IfcSensorType_CONDUCTANCESENSOR, IfcSensorType_CONTACTSENSOR, IfcSensorType_FIRESENSOR, IfcSensorType_FLOWSENSOR, IfcSensorType_FROSTSENSOR, IfcSensorType_GASSENSOR, IfcSensorType_HEATSENSOR, IfcSensorType_HUMIDITYSENSOR, IfcSensorType_IDENTIFIERSENSOR, IfcSensorType_IONCONCENTRATIONSENSOR, IfcSensorType_LEVELSENSOR, IfcSensorType_LIGHTSENSOR, IfcSensorType_MOISTURESENSOR, IfcSensorType_MOVEMENTSENSOR, IfcSensorType_PHSENSOR, IfcSensorType_PRESSURESENSOR, IfcSensorType_RADIATIONSENSOR, IfcSensorType_RADIOACTIVITYSENSOR, IfcSensorType_SMOKESENSOR, IfcSensorType_SOUNDSENSOR, IfcSensorType_TEMPERATURESENSOR, IfcSensorType_WINDSENSOR, IfcSensorType_USERDEFINED, IfcSensorType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); }; @@ -7372,15 +7378,6 @@ public: IfcSpecularRoughness (double v); operator double() const; }; - -class IFC_PARSE_API IfcStrippedOptional : public IfcUtil::IfcBaseType { -public: - virtual const IfcParse::type_declaration& declaration() const; - static const IfcParse::type_declaration& Class(); - explicit IfcStrippedOptional (IfcEntityInstanceData* e); - IfcStrippedOptional (bool v); - operator bool() const; -}; /// The temperature gradient measures the difference of a temperature per lenght, as for instance used in an external wall or its layers. It is usually measured in K/m. /// /// Type: REAL @@ -19750,6 +19747,29 @@ public: IfcIShapeProfileDef (::Ifc4::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4::IfcAxis2Placement2D* v3_Position, double v4_OverallWidth, double v5_OverallDepth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_FlangeEdgeRadius, boost::optional< double > v10_FlangeSlope); typedef IfcTemplatedEntityList< IfcIShapeProfileDef > list; }; + +class IFC_PARSE_API IfcIndexedPolygonalFace : public IfcTessellatedItem { +public: + std::vector< int > /*[3:?]*/ CoordIndex() const; + void setCoordIndex(std::vector< int > /*[3:?]*/ v); + IfcTemplatedEntityList< IfcPolygonalFaceSet >::ptr ToFaceSet() const; // INVERSE IfcPolygonalFaceSet::Faces + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcIndexedPolygonalFace (IfcEntityInstanceData* e); + IfcIndexedPolygonalFace (std::vector< int > /*[3:?]*/ v1_CoordIndex); + typedef IfcTemplatedEntityList< IfcIndexedPolygonalFace > list; +}; + +class IFC_PARSE_API IfcIndexedPolygonalFaceWithVoids : public IfcIndexedPolygonalFace { +public: + std::vector< std::vector< int > > InnerCoordIndices() const; + void setInnerCoordIndices(std::vector< std::vector< int > > v); + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcIndexedPolygonalFaceWithVoids (IfcEntityInstanceData* e); + IfcIndexedPolygonalFaceWithVoids (std::vector< int > /*[3:?]*/ v1_CoordIndex, std::vector< std::vector< int > > v2_InnerCoordIndices); + typedef IfcTemplatedEntityList< IfcIndexedPolygonalFaceWithVoids > list; +}; /// IfcLShapeProfileDef /// defines a section profile that provides the defining parameters of an /// L-shaped section (equilateral L profiles are also covered by this @@ -24410,6 +24430,17 @@ public: IfcSphere (::Ifc4::IfcAxis2Placement3D* v1_Position, double v2_Radius); typedef IfcTemplatedEntityList< IfcSphere > list; }; + +class IFC_PARSE_API IfcSphericalSurface : public IfcElementarySurface { +public: + double Radius() const; + void setRadius(double v); + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcSphericalSurface (IfcEntityInstanceData* e); + IfcSphericalSurface (::Ifc4::IfcAxis2Placement3D* v1_Position, double v2_Radius); + typedef IfcTemplatedEntityList< IfcSphericalSurface > list; +}; /// Definition from IAI: The abstract entity IfcStructuralActivity combines the definition of actions (such as forces, displacements, etc.) and reactions (support reactions, internal forces, deflections, etc.) which are specified by using the basic load definitions from the IfcStructuralLoadResource. /// /// The differentiation between actions and reactions is realized by instantiating objects either from subclasses of IfcStructuralAction or IfcStructuralReaction respectively. They inherit commonly needed attributes from the abstract superclass IfcStructuralActivity, notably the relationship which connects actions or reactions with connections, analysis members, or elements (subtypes of IfcStructuralItem or IfcElement). @@ -24790,6 +24821,21 @@ public: IfcSubContractResourceType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< std::string > v7_Identification, boost::optional< std::string > v8_LongDescription, boost::optional< std::string > v9_ResourceType, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcAppliedValue >::ptr > v10_BaseCosts, ::Ifc4::IfcPhysicalQuantity* v11_BaseQuantity, ::Ifc4::IfcSubContractResourceTypeEnum::Value v12_PredefinedType); typedef IfcTemplatedEntityList< IfcSubContractResourceType > list; }; + +class IFC_PARSE_API IfcSurfaceCurve : public IfcCurve { +public: + ::Ifc4::IfcCurve* Curve3D() const; + void setCurve3D(::Ifc4::IfcCurve* v); + IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr AssociatedGeometry() const; + void setAssociatedGeometry(IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr v); + ::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value MasterRepresentation() const; + void setMasterRepresentation(::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value v); + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcSurfaceCurve (IfcEntityInstanceData* e); + IfcSurfaceCurve (::Ifc4::IfcCurve* v1_Curve3D, IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr v2_AssociatedGeometry, ::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation); + typedef IfcTemplatedEntityList< IfcSurfaceCurve > list; +}; /// The IfcSurfaceCurveSweptAreaSolid is the result of /// sweeping an area along a directrix that lies on a reference /// surface. The swept area is provided by an IfcProfileDef @@ -25341,22 +25387,27 @@ class IFC_PARSE_API IfcTessellatedFaceSet : public IfcTessellatedItem { public: ::Ifc4::IfcCartesianPointList3D* Coordinates() const; void setCoordinates(::Ifc4::IfcCartesianPointList3D* v); - /// Whether the optional attribute Normals is defined for this IfcTessellatedFaceSet - bool hasNormals() const; - std::vector< std::vector< double > > Normals() const; - void setNormals(std::vector< std::vector< double > > v); - /// Whether the optional attribute Closed is defined for this IfcTessellatedFaceSet - bool hasClosed() const; - bool Closed() const; - void setClosed(bool v); IfcTemplatedEntityList< IfcIndexedColourMap >::ptr HasColours() const; // INVERSE IfcIndexedColourMap::MappedTo IfcTemplatedEntityList< IfcIndexedTextureMap >::ptr HasTextures() const; // INVERSE IfcIndexedTextureMap::MappedTo virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcTessellatedFaceSet (IfcEntityInstanceData* e); - IfcTessellatedFaceSet (::Ifc4::IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed); + IfcTessellatedFaceSet (::Ifc4::IfcCartesianPointList3D* v1_Coordinates); typedef IfcTemplatedEntityList< IfcTessellatedFaceSet > list; }; + +class IFC_PARSE_API IfcToroidalSurface : public IfcElementarySurface { +public: + double MajorRadius() const; + void setMajorRadius(double v); + double MinorRadius() const; + void setMinorRadius(double v); + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcToroidalSurface (IfcEntityInstanceData* e); + IfcToroidalSurface (::Ifc4::IfcAxis2Placement3D* v1_Position, double v2_MajorRadius, double v3_MinorRadius); + typedef IfcTemplatedEntityList< IfcToroidalSurface > list; +}; /// Definition from IAI: The element type /// IfcTransportElementType defines commonly shared /// information for occurrences of transport elements. The set of @@ -25434,16 +25485,24 @@ public: class IFC_PARSE_API IfcTriangulatedFaceSet : public IfcTessellatedFaceSet { public: + /// Whether the optional attribute Normals is defined for this IfcTriangulatedFaceSet + bool hasNormals() const; + std::vector< std::vector< double > > Normals() const; + void setNormals(std::vector< std::vector< double > > v); + /// Whether the optional attribute Closed is defined for this IfcTriangulatedFaceSet + bool hasClosed() const; + bool Closed() const; + void setClosed(bool v); std::vector< std::vector< int > > CoordIndex() const; void setCoordIndex(std::vector< std::vector< int > > v); - /// Whether the optional attribute NormalIndex is defined for this IfcTriangulatedFaceSet - bool hasNormalIndex() const; - std::vector< std::vector< int > > NormalIndex() const; - void setNormalIndex(std::vector< std::vector< int > > v); + /// Whether the optional attribute PnIndex is defined for this IfcTriangulatedFaceSet + bool hasPnIndex() const; + std::vector< int > /*[1:?]*/ PnIndex() const; + void setPnIndex(std::vector< int > /*[1:?]*/ v); virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcTriangulatedFaceSet (IfcEntityInstanceData* e); - IfcTriangulatedFaceSet (::Ifc4::IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, boost::optional< std::vector< std::vector< int > > > v5_NormalIndex); + IfcTriangulatedFaceSet (::Ifc4::IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, boost::optional< std::vector< int > /*[1:?]*/ > v5_PnIndex); typedef IfcTemplatedEntityList< IfcTriangulatedFaceSet > list; }; /// The window lining is the outer @@ -29980,6 +30039,15 @@ public: IfcInterceptorType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcInterceptorTypeEnum::Value v10_PredefinedType); typedef IfcTemplatedEntityList< IfcInterceptorType > list; }; + +class IFC_PARSE_API IfcIntersectionCurve : public IfcSurfaceCurve { +public: + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcIntersectionCurve (IfcEntityInstanceData* e); + IfcIntersectionCurve (::Ifc4::IfcCurve* v1_Curve3D, IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr v2_AssociatedGeometry, ::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation); + typedef IfcTemplatedEntityList< IfcIntersectionCurve > list; +}; /// An inventory is a list of items within an enterprise. /// /// Various types of inventory can be included. These are identified by the range of values within the inventory type enumeration which includes space, asset, and furniture. User defined inventories can also be defined for lists of particular types of element such as may be required in operating and maintenance instructions. Such inventories should be constrained to contain a list of elements of a restricted type.There are a number of actors that can be associated with an inventory, each actor having a role. Actors within the scope of the project are indicated using the IfcRelAssignsToActor relationship in which case roles should be defined through the IfcActorRole class; otherwise principal actors are identified as attributes of the class. In the existence of both, direct attributes take precedence.There are a number of costs that can be associated with an inventory, each cost having a role. These are specified through the CurrentValue and OriginalValue attributes.HISTORY: New entity in IFC2.0. Modified in IFC2x4 to make all attributes optional and remove Where Rule. @@ -31203,6 +31271,25 @@ public: IfcPlateType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcPlateTypeEnum::Value v10_PredefinedType); typedef IfcTemplatedEntityList< IfcPlateType > list; }; + +class IFC_PARSE_API IfcPolygonalFaceSet : public IfcTessellatedFaceSet { +public: + /// Whether the optional attribute Closed is defined for this IfcPolygonalFaceSet + bool hasClosed() const; + bool Closed() const; + void setClosed(bool v); + IfcTemplatedEntityList< ::Ifc4::IfcIndexedPolygonalFace >::ptr Faces() const; + void setFaces(IfcTemplatedEntityList< ::Ifc4::IfcIndexedPolygonalFace >::ptr v); + /// Whether the optional attribute PnIndex is defined for this IfcPolygonalFaceSet + bool hasPnIndex() const; + std::vector< int > /*[1:?]*/ PnIndex() const; + void setPnIndex(std::vector< int > /*[1:?]*/ v); + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcPolygonalFaceSet (IfcEntityInstanceData* e); + IfcPolygonalFaceSet (::Ifc4::IfcCartesianPointList3D* v1_Coordinates, boost::optional< bool > v2_Closed, IfcTemplatedEntityList< ::Ifc4::IfcIndexedPolygonalFace >::ptr v3_Faces, boost::optional< std::vector< int > /*[1:?]*/ > v4_PnIndex); + typedef IfcTemplatedEntityList< IfcPolygonalFaceSet > list; +}; /// Definition from ISO/CD 10303-42:1992: A polyline /// is a bounded curve of n - 1 linear segments, defined by a /// list of n points, P1, P2 ... Pn. @@ -32124,6 +32211,15 @@ public: IfcSanitaryTerminalType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcSanitaryTerminalTypeEnum::Value v10_PredefinedType); typedef IfcTemplatedEntityList< IfcSanitaryTerminalType > list; }; + +class IFC_PARSE_API IfcSeamCurve : public IfcSurfaceCurve { +public: + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcSeamCurve (IfcEntityInstanceData* e); + IfcSeamCurve (::Ifc4::IfcCurve* v1_Curve3D, IfcTemplatedEntityList< ::Ifc4::IfcPcurve >::ptr v2_AssociatedGeometry, ::Ifc4::IfcPreferredSurfaceCurveRepresentation::Value v3_MasterRepresentation); + typedef IfcTemplatedEntityList< IfcSeamCurve > list; +}; /// Definition from IAI: The IfcShadingDeviceType /// defines a list of commonly shared property set definitions of a /// shading device element and an optional set of product @@ -33957,14 +34053,14 @@ public: bool hasCrossSectionArea() const; double CrossSectionArea() const; void setCrossSectionArea(double v); - /// Whether the optional attribute SheethDiameter is defined for this IfcTendonType - bool hasSheethDiameter() const; - double SheethDiameter() const; - void setSheethDiameter(double v); + /// Whether the optional attribute SheathDiameter is defined for this IfcTendonType + bool hasSheathDiameter() const; + double SheathDiameter() const; + void setSheathDiameter(double v); virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcTendonType (IfcEntityInstanceData* e); - IfcTendonType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcTendonTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_SheethDiameter); + IfcTendonType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcTendonTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_SheathDiameter); typedef IfcTemplatedEntityList< IfcTendonType > list; }; /// The energy conversion device type IfcTransformerType defines commonly shared information for occurrences of transformers. The set of shared information may include: diff --git a/src/ifcparse/IfcEntityList.h b/src/ifcparse/IfcEntityList.h index 263ab2cf6b..784f90a63f 100644 --- a/src/ifcparse/IfcEntityList.h +++ b/src/ifcparse/IfcEntityList.h @@ -40,6 +40,7 @@ public: it end(); IfcUtil::IfcBaseClass* operator[] (int i); unsigned int size() const; + void reserve(unsigned capacity); bool contains(IfcUtil::IfcBaseClass*) const; template typename U::list::ptr as() { diff --git a/src/ifcparse/IfcFile.h b/src/ifcparse/IfcFile.h index a3120ec620..f613c938c9 100644 --- a/src/ifcparse/IfcFile.h +++ b/src/ifcparse/IfcFile.h @@ -41,6 +41,7 @@ public: typedef boost::unordered_map entity_by_id_t; typedef std::map entity_by_guid_t; typedef std::map > entities_by_ref_t; + typedef std::map ref_map_t; typedef entity_by_id_t::const_iterator const_iterator; class type_iterator : private entities_by_type_t::const_iterator { @@ -86,6 +87,7 @@ private: entities_by_type_t bytype; entities_by_type_t bytype_excl; entities_by_ref_t byref; + ref_map_t by_ref_cached_; entity_by_guid_t byguid; entity_entity_map_t entity_file_map; @@ -181,6 +183,10 @@ public: IfcEntityList::ptr getInverse(int instance_id, const IfcParse::declaration* type, int attribute_index); + /// Marks entity as modified so that potential cache for it is invalidated. + /// @todo Currently the whole cache is invalidated. Implement more fine-grained invalidation. + void mark_entity_as_modified(int id); + unsigned int FreshId() { return ++MaxId; } IfcUtil::IfcBaseClass* addEntity(IfcUtil::IfcBaseClass* entity); diff --git a/src/ifcparse/IfcLogger.cpp b/src/ifcparse/IfcLogger.cpp index dd834d4241..c841352d5e 100644 --- a/src/ifcparse/IfcLogger.cpp +++ b/src/ifcparse/IfcLogger.cpp @@ -32,58 +32,101 @@ #include #include -using boost::property_tree::ptree; - namespace { - static const char* severity_strings[] = {"Notice", "Warning", "Error"}; + + template + struct severity_strings { + static const std::array, 3> value; + }; - void plain_text_message(std::ostream& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseClass* instance) { - os << "[" << severity_strings[type] << "] "; + template <> + const std::array, 3> severity_strings::value = { "Notice", "Warning", "Error" }; + + template <> + const std::array, 3> severity_strings::value = { L"Notice", L"Warning", L"Error" }; + + template + void plain_text_message(T& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseClass* instance) { + os << "[" << severity_strings::value[type] << "] "; if (current_product) { - std::string global_id = *(**current_product).data().getArgument((**current_product).declaration().as_entity()->attribute_index("GlobalId")); - os << "{" << global_id << "} "; + std::string global_id = *((IfcUtil::IfcBaseEntity*)*current_product)->get("GlobalId"); + os << "{" << global_id.c_str() << "} "; } - os << message << std::endl; + os << message.c_str() << std::endl; if (instance) { std::string instance_string = instance->data().toString(); if (instance_string.size() > 259) { instance_string = instance_string.substr(0, 256) + "..."; } - os << instance_string << std::endl; + os << instance_string.c_str() << std::endl; } } - void json_message(std::ostream& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseClass* instance) { - ptree pt; - pt.put("level", severity_strings[type]); + template + std::basic_string string_as(const std::string& s) { + std::basic_string v; + v.assign(s.begin(), s.end()); + return v; + } + + template + void json_message(T& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseClass* instance) { + boost::property_tree::basic_ptree, std::basic_string > pt; + + // @todo this is crazy + static const typename T::char_type level_string[] = { 'l', 'e', 'v', 'e', 'l', 0 }; + static const typename T::char_type product_string[] = { 'p', 'r', 'o', 'd', 'u', 'c', 't', 0 }; + static const typename T::char_type message_string[] = { 'm', 'e', 's', 's', 'a', 'g', 'e', 0 }; + static const typename T::char_type instance_string[] = { 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', 0 }; + + pt.put(level_string, severity_strings::value[type]); if (current_product) { - pt.put("product", (**current_product).data().toString()); + pt.put(product_string, string_as((**current_product).data().toString())); } - pt.put("message", message); + pt.put(message_string, string_as(message)); if (instance) { - pt.put("instance", instance->data().toString()); + pt.put(instance_string, string_as(instance->data().toString())); } boost::property_tree::write_json(os, pt, false); } } -void Logger::SetOutput(std::ostream* l1, std::ostream* l2) { +void Logger::SetProduct(boost::optional product) { + current_product = product; +} + +void Logger::SetOutput(std::ostream* l1, std::ostream* l2) { + wlog1 = wlog2 = 0; log1 = l1; log2 = l2; - if ( ! log2 ) { + if (!log2) { + log2 = &log_stream; + } +} + +void Logger::SetOutput(std::wostream* l1, std::wostream* l2) { + log1 = log2 = 0; + wlog1 = l1; + wlog2 = l2; + if (!wlog2) { log2 = &log_stream; } } void Logger::Message(Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseClass* instance) { - if (type > max_severity) { - max_severity = type; - } - if (log2 && type >= verbosity) { + if ((log2 || wlog2) && type >= verbosity) { if (format == FMT_PLAIN) { - plain_text_message(*log2, current_product, type, message, instance); + if (log2) { + plain_text_message(*log2, current_product, type, message, instance); + } else if (wlog2) { + plain_text_message(*wlog2, current_product, type, message, instance); + } } else if (format == FMT_JSON) { - json_message(*log2, current_product, type, message, instance); + if (log2) { + json_message(*log2, current_product, type, message, instance); + } else if (wlog2) { + json_message(*wlog2, current_product, type, message, instance); + } } } } @@ -92,18 +135,26 @@ void Logger::Message(Logger::Severity type, const std::exception& exception, con Message(type, std::string(exception.what()), instance); } +template +void status(T& log1, const std::string& message, bool new_line) { + log1 << message.c_str(); + if (new_line) { + log1 << std::endl; + } else { + log1 << std::flush; + } +} + void Logger::Status(const std::string& message, bool new_line) { if (log1) { - (*log1) << message; - if ( new_line ) (*log1) << std::endl; - else (*log1) << std::flush; + status(*log1, message, new_line); + } else if (wlog1) { + status(*wlog1, message, new_line); } } void Logger::ProgressBar(int progress) { - if (log1) { - Status("\r[" + std::string(progress,'#') + std::string(50 - progress,' ') + "]", false); - } + Status("\r[" + std::string(progress,'#') + std::string(50 - progress,' ') + "]", false); } std::string Logger::GetLog() { @@ -120,6 +171,8 @@ Logger::Format Logger::OutputFormat() { return format; } std::ostream* Logger::log1 = 0; std::ostream* Logger::log2 = 0; +std::wostream* Logger::wlog1 = 0; +std::wostream* Logger::wlog2 = 0; std::stringstream Logger::log_stream; Logger::Severity Logger::verbosity = Logger::LOG_NOTICE; Logger::Severity Logger::max_severity = Logger::LOG_NOTICE; diff --git a/src/ifcparse/IfcLogger.h b/src/ifcparse/IfcLogger.h index 783dcbdcfd..9ae7f49e39 100644 --- a/src/ifcparse/IfcLogger.h +++ b/src/ifcparse/IfcLogger.h @@ -38,19 +38,27 @@ public: typedef enum { LOG_NOTICE, LOG_WARNING, LOG_ERROR } Severity; typedef enum { FMT_PLAIN, FMT_JSON } Format; private: + + // To both stream variants need to exist at runtime or should this be a + // template argument of Logger or controlled using preprocessor directives? static std::ostream* log1; static std::ostream* log2; + + static std::wostream* wlog1; + static std::wostream* wlog2; + static std::stringstream log_stream; + static Severity verbosity; static Format format; static boost::optional current_product; static Severity max_severity; public: + static void SetProduct(boost::optional product); - static void SetProduct(boost::optional product) { - current_product = product; - } - + /// Determines to what stream respectively progress and errors are logged + static void SetOutput(std::wostream* l1, std::wostream* l2); + /// Determines to what stream respectively progress and errors are logged static void SetOutput(std::ostream* l1, std::ostream* l2); diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 78fa39f312..c97e4095c1 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -25,10 +25,6 @@ #include #include -#ifdef _MSC_VER -#include -#endif - #include #include @@ -40,6 +36,7 @@ #include "../ifcparse/IfcFile.h" #include "../ifcparse/IfcSIPrefix.h" #include "../ifcparse/IfcSchema.h" +#include "../ifcparse/utils.h" #ifdef USE_MMAP #include @@ -117,9 +114,8 @@ IfcSpfStream::IfcSpfStream(const std::string& fn) , eof(false) { #ifdef _MSC_VER - int fn_buffer_size = MultiByteToWideChar(CP_UTF8, 0, fn.c_str(), -1, 0, 0); - wchar_t* fn_wide = new wchar_t[fn_buffer_size]; - MultiByteToWideChar(CP_UTF8, 0, fn.c_str(), -1, fn_wide, fn_buffer_size); + std::wstring fn_ws = IfcUtil::path::from_utf8(fn); + const wchar_t* fn_wide = fn_ws.c_str(); #ifdef USE_MMAP if (mmap) { @@ -131,7 +127,6 @@ IfcSpfStream::IfcSpfStream(const std::string& fn) } #endif - delete[] fn_wide; #else #ifdef USE_MMAP @@ -1257,7 +1252,9 @@ void IfcEntityInstanceData::setArgument(unsigned int i, Argument* a, IfcUtil::Ar if (this->file) { register_inverse_visitor visitor(*this->file, *this); apply_individual_instance_visitor(copy).apply(visitor); - } + + this->file->mark_entity_as_modified(id_); + } attributes_[i] = copy; } @@ -1504,6 +1501,11 @@ IfcEntityList::ptr IfcFile::traverse(IfcUtil::IfcBaseClass* instance, int max_le return IfcParse::traverse(instance, max_level); } +void IfcFile::mark_entity_as_modified(int /*id*/) +{ + by_ref_cached_.clear(); +} + void IfcFile::addEntities(IfcEntityList::ptr es) { for( IfcEntityList::it i = es->begin(); i != es->end(); ++ i ) { addEntity(*i); @@ -1868,17 +1870,25 @@ IfcEntityList::ptr IfcFile::instances_by_type(const std::string& t) { IfcEntityList::ptr IfcFile::instances_by_reference(int t) { entities_by_ref_t::const_iterator it = byref.find(t); - IfcEntityList::ptr return_value; + IfcEntityList::ptr ret; if (it != byref.end()) { - const std::vector& ids = it->second; - for (std::vector::const_iterator jt = ids.begin(); jt != ids.end(); ++jt) { - if (!return_value) { - return_value.reset(new IfcEntityList); - } - return_value->push(instance_by_id(*jt)); - } + ref_map_t::const_iterator cached_it = by_ref_cached_.find(t); + if (cached_it != by_ref_cached_.end()) { + ret = cached_it->second; + } + else { + if (it->second.size()) { + ret.reset(new IfcEntityList); + ret->reserve((unsigned)it->second.size()); + const std::vector& ids = it->second; + for (std::vector::const_iterator jt = ids.begin(); jt != ids.end(); ++jt) { + ret->push(instance_by_id(*jt)); + } + } + by_ref_cached_[t] = ret; + } } - return return_value; + return ret; } IfcUtil::IfcBaseClass* IfcFile::instance_by_id(int id) { diff --git a/src/ifcparse/IfcSchema.h b/src/ifcparse/IfcSchema.h index 7190609192..55f3ecc2e1 100644 --- a/src/ifcparse/IfcSchema.h +++ b/src/ifcparse/IfcSchema.h @@ -195,53 +195,52 @@ namespace IfcParse { virtual const enumeration_type* as_enumeration_type() const { return this; } }; - class entity : public declaration { - public: - class attribute { - protected: - std::string name_; - const parameter_type* type_of_attribute_; - bool optional_; - - public: - attribute(const std::string& name, parameter_type* type_of_attribute, bool optional) - : name_(name) - , type_of_attribute_(type_of_attribute) - , optional_(optional) {} - - const std::string& name() const { return name_; } - const parameter_type* type_of_attribute() const { return type_of_attribute_; } - bool optional() const { return optional_; } - }; - - class inverse_attribute { - public: - typedef enum { bag_type, set_type, unspecified_type } aggregate_type; - protected: - std::string name_; - aggregate_type type_of_aggregation_; - int bound1_, bound2_; - const entity* entity_reference_; - const attribute* attribute_reference_; - public: - inverse_attribute(const std::string& name, aggregate_type type_of_aggregation, int bound1, int bound2, const entity* entity_reference, const attribute* attribute_reference) - : name_(name) - , type_of_aggregation_(type_of_aggregation) - , bound1_(bound1) - , bound2_(bound2) - , entity_reference_(entity_reference) - , attribute_reference_(attribute_reference) - {} - - const std::string& name() const { return name_; } - aggregate_type type_of_aggregation() const { return type_of_aggregation_; } - int bound1() const { return bound1_; } - int bound2() const { return bound2_; } - const entity* entity_reference() const { return entity_reference_; } - const attribute* attribute_reference() const { return attribute_reference_; } - }; - + class attribute { protected: + std::string name_; + const parameter_type* type_of_attribute_; + bool optional_; + + public: + attribute(const std::string& name, parameter_type* type_of_attribute, bool optional) + : name_(name) + , type_of_attribute_(type_of_attribute) + , optional_(optional) {} + + const std::string& name() const { return name_; } + const parameter_type* type_of_attribute() const { return type_of_attribute_; } + bool optional() const { return optional_; } + }; + + class inverse_attribute { + public: + typedef enum { bag_type, set_type, unspecified_type } aggregate_type; + protected: + std::string name_; + aggregate_type type_of_aggregation_; + int bound1_, bound2_; + const entity* entity_reference_; + const attribute* attribute_reference_; + public: + inverse_attribute(const std::string& name, aggregate_type type_of_aggregation, int bound1, int bound2, const entity* entity_reference, const attribute* attribute_reference) + : name_(name) + , type_of_aggregation_(type_of_aggregation) + , bound1_(bound1) + , bound2_(bound2) + , entity_reference_(entity_reference) + , attribute_reference_(attribute_reference) {} + + const std::string& name() const { return name_; } + aggregate_type type_of_aggregation() const { return type_of_aggregation_; } + int bound1() const { return bound1_; } + int bound2() const { return bound2_; } + const entity* entity_reference() const { return entity_reference_; } + const attribute* attribute_reference() const { return attribute_reference_; } + }; + + class entity : public declaration { + protected: + bool is_abstract_; const entity* supertype_; /* NB: IFC explicitly allows only single inheritance */ std::vector subtypes_; @@ -276,8 +275,9 @@ namespace IfcParse { } public: - entity(const std::string& name, int index_in_schema, entity* supertype) + entity(const std::string& name, bool is_abstract, int index_in_schema, entity* supertype) : declaration(name, index_in_schema) + , is_abstract_(is_abstract) , supertype_(supertype) {} @@ -293,6 +293,8 @@ namespace IfcParse { else return false; } + bool is_abstract() const { return is_abstract_; } + void set_subtypes(const std::vector& subtypes) { subtypes_ = subtypes; } diff --git a/src/ifcparse/IfcUtil.cpp b/src/ifcparse/IfcUtil.cpp index 48ea296329..41784a776e 100644 --- a/src/ifcparse/IfcUtil.cpp +++ b/src/ifcparse/IfcUtil.cpp @@ -17,8 +17,43 @@ * * ********************************************************************************/ +#ifdef _MSC_VER +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef NOMINMAX +#define NOMINMAX +#endif +#ifndef NOMSG +#define NOMSG NOMSG +#endif +#ifndef NODRAWTEXT +#define NODRAWTEXT NODRAWTEXT +#endif +#ifndef NOGDI +#define NOGDI NOGDI +#endif +#ifndef NOSERVICE +#define NOSERVICE NOSERVICE +#endif +#ifndef NOKERNEL +#define NOKERNEL NOKERNEL +#endif +#ifndef NOUSER +#define NOUSER NOUSER +#endif +#ifndef NOMCX +#define NOMCX NOMCX +#endif +#ifndef NOIME +#define NOIME NOIME +#endif +#include +#endif + #include "../ifcparse/IfcBaseClass.h" #include "../ifcparse/Argument.h" +#include "../ifcparse/utils.h" #include "../ifcparse/IfcException.h" #include "../ifcparse/IfcEntityList.h" @@ -42,6 +77,7 @@ void IfcEntityList::push(const IfcEntityList::ptr& l) { } } unsigned int IfcEntityList::size() const { return (unsigned int) ls.size(); } +void IfcEntityList::reserve(unsigned capacity) { ls.reserve((size_t)capacity); } IfcEntityList::it IfcEntityList::begin() { return ls.begin(); } IfcEntityList::it IfcEntityList::end() { return ls.end(); } IfcUtil::IfcBaseClass* IfcEntityList::operator[] (int i) { @@ -239,4 +275,52 @@ IfcUtil::ArgumentType IfcUtil::from_parameter_type(const IfcParse::parameter_typ } return IfcUtil::Argument_UNKNOWN; -} \ No newline at end of file +} + +#ifdef _MSC_VER +std::string IfcUtil::path::to_utf8(const std::wstring& str) { + int buffer_size = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), -1, 0, 0, 0, 0); + char* buffer = new char[buffer_size]; + WideCharToMultiByte(CP_UTF8, 0, str.c_str(), -1, buffer, buffer_size, 0, 0); + std::string str_utf8(buffer); + delete[] buffer; + return str_utf8; +} + +std::wstring IfcUtil::path::from_utf8(const std::string& str) { + int buffer_size = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, 0, 0); + wchar_t* buffer = new wchar_t[buffer_size]; + MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, buffer, buffer_size); + std::wstring str_wide(buffer); + delete[] buffer; + return str_wide; +} + +IFC_PARSE_API bool IfcUtil::path::rename_file(const std::string& old_filename, const std::string& new_filename) { + std::wstring old_filename_w = from_utf8(old_filename); + std::wstring new_filename_w = from_utf8(new_filename); + delete_file(new_filename); + const bool success = !!MoveFileW(old_filename_w.c_str(), new_filename_w.c_str()); + return success; +} + +IFC_PARSE_API bool IfcUtil::path::delete_file(const std::string& filename) { + std::wstring filename_w = from_utf8(filename); + const bool success = !!DeleteFileW(filename_w.c_str()); + return success; +} + +#else + +IFC_PARSE_API bool IfcUtil::path::rename_file(const std::string& old_filename, const std::string& new_filename) { + // Whether or not rename() replaces an existing file is implementation-specific, + // so remove() possible existing file always. + delete_file(new_filename); + return std::rename(old_filename.c_str(), new_filename.c_str()) == 0; +} + +IFC_PARSE_API bool IfcUtil::path::delete_file(const std::string& filename) { + return std::remove(filename.c_str()); +} + +#endif diff --git a/src/ifcparse/parse_ifcxml.cpp b/src/ifcparse/parse_ifcxml.cpp index 916ee6b307..b7e4746204 100644 --- a/src/ifcparse/parse_ifcxml.cpp +++ b/src/ifcparse/parse_ifcxml.cpp @@ -47,7 +47,7 @@ protected: node_type type_; IfcUtil::IfcBaseClass* inst_; int idx_; - const IfcParse::entity::inverse_attribute* inv_; + const IfcParse::inverse_attribute* inv_; std::string tagname_; std::string id_in_file_; const IfcParse::parameter_type* aggregate_elem_type_; @@ -92,7 +92,7 @@ public: return n; } - static stack_node inverse(IfcUtil::IfcBaseClass* inst, const IfcParse::entity::inverse_attribute* inv) { + static stack_node inverse(IfcUtil::IfcBaseClass* inst, const IfcParse::inverse_attribute* inv) { stack_node n; n.type_ = node_inverse; n.inst_ = inst; @@ -125,7 +125,7 @@ public: IfcUtil::IfcBaseClass* inst() const { return inst_; } int idx() const { return idx_; } - const IfcParse::entity::inverse_attribute* inv_attr() const { return inv_; } + const IfcParse::inverse_attribute* inv_attr() const { return inv_; } const std::string& tagname() const { return tagname_; } const std::string& id_in_file() const { return id_in_file_; } const IfcParse::parameter_type* aggregate_elem_type() const { return aggregate_elem_type_; } @@ -483,7 +483,7 @@ static void start_element(void* user, const xmlChar* tag, const xmlChar** attrs) auto idx = current->attribute_index(tagname); if (idx == -1) { auto inverses = current->all_inverse_attributes(); - auto found = std::find_if(inverses.begin(), inverses.end(), [&tagname](const IfcParse::entity::inverse_attribute* attr) { + auto found = std::find_if(inverses.begin(), inverses.end(), [&tagname](const IfcParse::inverse_attribute* attr) { return attr->name() == tagname; }); if (found == inverses.end()) { diff --git a/src/ifcparse/utils.h b/src/ifcparse/utils.h new file mode 100644 index 0000000000..ea60de4689 --- /dev/null +++ b/src/ifcparse/utils.h @@ -0,0 +1,59 @@ +/******************************************************************************** +* * +* This file is part of IfcOpenShell. * +* * +* IfcOpenShell is free software: you can redistribute it and/or modify * +* it under the terms of the Lesser GNU General Public License as published by * +* the Free Software Foundation, either version 3.0 of the License, or * +* (at your option) any later version. * +* * +* IfcOpenShell is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* Lesser GNU General Public License for more details. * +* * +* You should have received a copy of the Lesser GNU General Public License * +* along with this program. If not, see . * +* * +********************************************************************************/ + +#include "../ifcparse/ifc_parse_api.h" + +#include + +#ifndef IFCPARSE_UTILS_H +#define IFCPARSE_UTILS_H + +namespace IfcUtil { + + /// Replaces spaces and potentially other problem causing characters with underscores. + IFC_PARSE_API void sanitate_material_name(std::string &str); + + IFC_PARSE_API void escape_xml(std::string &str); + IFC_PARSE_API void unescape_xml(std::string &str); + + namespace path { + + IFC_PARSE_API bool delete_file(const std::string& filename); + IFC_PARSE_API bool rename_file(const std::string& old_filename, const std::string& new_filename); + +#ifdef _MSC_VER + + /// Uses windows.h string conversion functions + IFC_PARSE_API std::string to_utf8(const std::wstring& str); + + /// Uses windows.h string conversion functions + IFC_PARSE_API std::wstring from_utf8(const std::string& str); +#else + /// Identity operation + IFC_PARSE_API inline std::string to_utf8(const std::string& str) { return str; } + + /// Identity operation + IFC_PARSE_API inline std::string from_utf8(const std::string& str) { return str; } +#endif + + } + +} + +#endif diff --git a/src/ifcwrap/CMakeLists.txt b/src/ifcwrap/CMakeLists.txt index 2401b8d43e..858d1ff9d3 100644 --- a/src/ifcwrap/CMakeLists.txt +++ b/src/ifcwrap/CMakeLists.txt @@ -78,23 +78,17 @@ IF(PYTHONINTERP_FOUND AND NOT "${PYTHON_EXECUTABLE}" STREQUAL "") IF("${python_package_dir}" STREQUAL "") MESSAGE(WARNING "Unable to locate Python site-package directory, unable to install the Python wrapper") ELSE() - INSTALL(FILES - "${CMAKE_BINARY_DIR}/ifcwrap/ifcopenshell_wrapper.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/__init__.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/entity_instance.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/file.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/guid.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/main.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/template.py" - DESTINATION "${python_package_dir}/ifcopenshell") - INSTALL(FILES - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/__init__.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/app.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/code_editor_pane.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/main.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/occ_utils.py" - DESTINATION "${python_package_dir}/ifcopenshell/geom") - INSTALL(TARGETS _ifcopenshell_wrapper DESTINATION "${python_package_dir}/ifcopenshell") + FILE(GLOB_RECURSE sourcefiles "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/*.py") + FOREACH(file ${sourcefiles}) + FILE(RELATIVE_PATH relative "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/" "${file}") + GET_FILENAME_COMPONENT(dir "${relative}" DIRECTORY) + INSTALL(FILES "${file}" + DESTINATION "${python_package_dir}/ifcopenshell/${dir}") + ENDFOREACH() + INSTALL(FILES "${CMAKE_BINARY_DIR}/ifcwrap/ifcopenshell_wrapper.py" + DESTINATION "${python_package_dir}/ifcopenshell") + INSTALL(TARGETS _ifcopenshell_wrapper + DESTINATION "${python_package_dir}/ifcopenshell") ENDIF() ELSE() MESSAGE(WARNING "No Python interpreter found, unable to install the Python wrapper") diff --git a/src/ifcwrap/IfcParseWrapper.i b/src/ifcwrap/IfcParseWrapper.i index 67616f0f54..c3985a6bc9 100644 --- a/src/ifcwrap/IfcParseWrapper.i +++ b/src/ifcwrap/IfcParseWrapper.i @@ -136,8 +136,8 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas } { - const std::vector attrs = $self->declaration().as_entity()->all_attributes(); - std::vector::const_iterator it = attrs.begin(); + const std::vector attrs = $self->declaration().as_entity()->all_attributes(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { if ((*it)->name() == name) { return 1; @@ -146,8 +146,8 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas } { - const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); - std::vector::const_iterator it = attrs.begin(); + const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { if ((*it)->name() == name) { return 2; @@ -178,12 +178,12 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas return std::vector(1, "wrappedValue"); } - const std::vector attrs = $self->declaration().as_entity()->all_attributes(); + const std::vector attrs = $self->declaration().as_entity()->all_attributes(); std::vector attr_names; attr_names.reserve(attrs.size()); - std::vector::const_iterator it = attrs.begin(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { attr_names.push_back((*it)->name()); } @@ -196,12 +196,12 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas return std::vector(0); } - const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); + const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); std::vector attr_names; attr_names.reserve(attrs.size()); - std::vector::const_iterator it = attrs.begin(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { attr_names.push_back((*it)->name()); } @@ -260,8 +260,8 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas } IfcEntityList::ptr get_inverse(const std::string& a) { - const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); - std::vector::const_iterator it = attrs.begin(); + const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { if ((*it)->name() == a) { return self->data().getInverse( @@ -586,6 +586,98 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas } %} +%extend IfcParse::named_type { + %pythoncode %{ + def __repr__(self): + return repr(self.declared_type()) + %} +} + +%extend IfcParse::simple_type { + %pythoncode %{ + def __repr__(self): + return "<%s>" % self.declared_type() + %} +} + +%extend IfcParse::aggregation_type { + std::string type_of_aggregation_string() const { + static const char* const aggr_strings[] = {"array", "bag", "list", "set"}; + return aggr_strings[(int) $self->type_of_aggregation()]; + } + %pythoncode %{ + def __repr__(self): + format_bound = lambda i: "?" if i == -1 else str(i) + return "<%s [%s:%s] of %r>" % ( + self.type_of_aggregation_string(), + format_bound(self.bound1()), + format_bound(self.bound2()), + self.type_of_element() + ) + %} +} + +%extend IfcParse::type_declaration { + %pythoncode %{ + def __repr__(self): + return "" % (self.name(), self.declared_type()) + %} +} + +%extend IfcParse::select_type { + %pythoncode %{ + def __repr__(self): + return "